Archived
1
0
This repository has been archived on 2026-04-22. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
FoxTube/FoxTube.Core/Models/Collections/InboxCollection.cs
T
2020-06-11 21:17:18 +03:00

46 lines
1.2 KiB
C#

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<InboxItem>
{
private int _pageNumber = 0;
private HttpClient _httpClient = new HttpClient();
public override async Task<LoadMoreItemsResult> LoadItems()
{
// TODO: Add backend
HttpResponseMessage response = await _httpClient.GetAsync($"https://xfox111.net/API/FoxTube/Inbox?" +
$"lang={Storage.GetValue<string>(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<InboxItem[]>(await response.Content.ReadAsStringAsync());
foreach (InboxItem item in newItems)
Items.Add(item);
_pageNumber++;
return new LoadMoreItemsResult
{
Count = (uint)newItems.Length
};
}
}
}