Лучший способ обработки разбитых на страницы данных, извлекаемых из API

#c# #xamarin.ios #xamarin.android

#c# #xamarin.ios #xamarin.android

Вопрос:

Итак, у меня есть приложения для Android и IOS, которые оба используют основное приложение. Там есть некоторые сервисы, в которых я не буду вдаваться в подробности, потому что это не объясняет мою точку зрения. В любом случае, служба возвращает Pagination объект с Data приписываемым ему атрибутом.

Pagination Модель выглядит следующим образом:

 public class Pagination<T>
{
    public Pagination ()
    {
    }

    public int Total { get; set; }
    public int Per_Page { get ; set; }
    public int Current_Page { get; set; }
    public int Last_Page { get; set; }
    public int From { get; set; }
    public int To { get; set; }
    public List<T> Data { get; set; }


}
  

И данные, которые возвращает мой API, выглядят следующим образом:

 {
    total: 41,
    per_page: 10,
    current_page: 1,
    last_page: 5,
    from: 1,
    to: 10,
    data: [ {} , {} , {} ]
}
  

Итак, метод service, который заполняет Pagination объект, выглядит следующим образом:

 photoservice.GetPhotos (album.Venue_Id, album.ID, page, (Pagination<Photo> obj) => {
    // Save the objects to the internal SQLite database
    photoManager.SavePhotos(obj.Data);

});
  

И теперь мои вопросы:

  • Как обрабатывать данные, которые я извлекаю?
  • Как сохранить состояние страниц, которые уже были извлечены?
  • Как правильно обновлять представления, когда требуется извлечь больше данных?
  • Кто-нибудь знает лучшие практики для этого?
  • Как элегантным способом уведомить пользовательский интерфейс?

Заранее спасибо! С уважением, Джек

Редактировать:

Я понимаю, что вопросы, которые я задаю, слишком широкие. Я должен увеличить масштаб одного из них. Итак, что я действительно хочу знать:

  • Как сохранить состояние страниц, которые уже были извлечены?

Комментарии:

1. Пожалуйста, попробуйте задавать по одному вопросу за раз. Сложно написать полезный ответ, когда вы задаете несколько вопросов одновременно. Некоторые из ваших вопросов, например «Как обрабатывать данные, которые я извлекаю?», невероятно обширны. Вы могли бы многое сделать с данными — отобразить их в пользовательском интерфейсе, сохранить в базе данных и т.д. — Это зависит от вас.

2. Немного отредактировал мой вопрос. Я действительно хотел бы знать, есть ли у вас какие-либо рекомендации для меня.