Как показать просмотр списка с рефитом в форме xamarin - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь показать просмотр списка в форме xamarin с данными json из веб-сервиса

Это мои данные json:

{"isSuccess":true,"resultMessage":"","data":[{"password":"MnwPzyBdAZBrDV6xMHoIzg","userid":4,"name":"Budi","tanggal_lahir":"09/03/1996 00:00:00","email":"budi123@gmail.com","tanggal_join":"01/20/2020 15:08:07","username":"budi001"},
{"password":"PFjQJkorLvR+ilWUWdq1Yw","userid":5,"name":"Hermawan","tanggal_lahir":"09/07/1996 00:00:00","email":"mawan@gmail.com","tanggal_join":"01/23/2020 15:08:07","username":"mawan123"}]}

Это мой веб-сервис кодирования:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public void getAllUsers()
    {
        DbAccessConnection conn = getActiveConnection();

        if (conn == null)
            return;

        try
        {
            beginTransaction(conn);

            MimoUser users = new MimoUser(conn);
            DataSet ds = new DataSet();
            string tbName = "MimoUser";

            users.getAll(ds, tbName);
            DataTable dtTbl = ds.Tables[tbName];

            List<Dictionary<String, object>> lsOfDtTbl = Tools.convertDataTableToList(dtTbl);

            commitTransaction(conn);
            Responder.writeResponse(true, "", lsOfDtTbl );
            //commitTransaction(conn);
        }
        catch (Exception ex)
        {
            rollbackTransaction(conn);
            Responder.writeResponse(false, ex.Message);
        }
    }

И это мое кодирование в форме xamarin

Интерфейс:
IUserApi.cs

public interface IUserApi
{
    [Get("/getAllUsers")]
    Task<List<User>> getAllUsers();
}

Модель:
User.cs

public class User
{
    public object password { get; set; }
    public int userid { get; set; }
    public string name {get; set; }
    public object tanggal_lahir { get; set; }
    public object email { get; set; }
    public object tanggal_join { get; set; }
    public string username { get; set; }
}

DataReturnResult.cs

public class DataReturnResult
{
    public Boolean isSuccess;
    public String resultMessage;
    public object data;

    public static DataReturnResult createReturnResult(Boolean isSuccess,String resultMessage,object data = null)
    {
        DataReturnResult result = new DataReturnResult();
        result.isSuccess = isSuccess;
        result.resultMessage = resultMessage;
        result.data = data;
        return result;
    }


    public static String createReturnResultJson(Boolean isSuccess,String resultMessage,object data = null)
    {
        DataReturnResult result = createReturnResult(isSuccess, resultMessage, data);
        return JsonConvert.SerializeObject(result);
    }
}

MainPage.xaml

<ContentPage.Content>
    <StackLayout
        Padding="20">

        <Button 
            Text="Get User"
            Clicked="OnUserClicked"
            BackgroundColor="Black"
            TextColor="White"
            HorizontalOptions="FillAndExpand"/>

        <ListView
            x:Name="ListUser">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell
                        Text="{Binding name}"/>
                </DataTemplate>
            </ListView.ItemTemplate>

        </ListView>


    </StackLayout>
</ContentPage.Content>

MainPage.xaml.cs

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    async void OnUserClicked(object sender,EventArgs ex)
    {

        var apiResponse = RestService.For<IUserApi>("http://192.168.0.188/appwebservice/appwebservice.asmx");
        var listUser = await apiResponse.getAllUsers();

        ListUser.ItemsSource = listUser;
    }

}

При нажатии я получил сообщение об ошибке кнопка Получить пользователя. это сообщение об ошибке:

Refit.ApiException: 'Response status code does not indicate success: 500 (Internal Server Error).'

Я пытаюсь изменить код IUserApi.cs на Task<List<DataReturnResult>> getAllUsers(), я получил то же сообщение об ошибке от Get User

Не могли бы вы помочь мне, как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...