using Newtonsoft.Json; using System.Threading.Tasks; using System.Net.Http; using Windows.UI.Xaml.Data; using FoxTube.Services; using FoxTube.Utils; namespace FoxTube.Models.Collections { public class InboxCollection : ViewCollection { private int _pageNumber = 0; private HttpClient _httpClient = new HttpClient(); public override async Task LoadItems() { // TODO: Add backend HttpResponseMessage response = await _httpClient.GetAsync($"https://xfox111.net/API/FoxTube/Inbox?" + $"lang={Storage.GetValue(Storage.Settings.UILanguage)}&" + $"currentVersion={Metrics.CurrentVersion}&" + $"itemsCount={ItemsPerRequest}&" + $"iteration={_pageNumber}"); if (!response.IsSuccessStatusCode || response.StatusCode == System.Net.HttpStatusCode.NoContent) { HasMoreItems = false; return new LoadMoreItemsResult { Count = 0 }; } InboxItem[] newItems = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); foreach (InboxItem item in newItems) Items.Add(item); _pageNumber++; return new LoadMoreItemsResult { Count = (uint)newItems.Length }; } } }