mirror of
https://github.com/ckaczor/ChrisKaczor.FeverClient.git
synced 2026-01-13 17:22:17 -05:00
Make GetAllFeedItems yield async
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
using System.Text.Json;
|
using ChrisKaczor.FeverClient.Converters;
|
||||||
using ChrisKaczor.FeverClient.Converters;
|
|
||||||
using ChrisKaczor.FeverClient.Models;
|
using ChrisKaczor.FeverClient.Models;
|
||||||
using ChrisKaczor.FeverClient.Responses;
|
using ChrisKaczor.FeverClient.Responses;
|
||||||
using RestSharp;
|
using RestSharp;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace ChrisKaczor.FeverClient;
|
namespace ChrisKaczor.FeverClient;
|
||||||
|
|
||||||
@@ -80,20 +80,23 @@ public class FeverClient
|
|||||||
return feedItemsResponse.FeedItems;
|
return feedItemsResponse.FeedItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<FeedItem>> GetAllFeedItems()
|
public async IAsyncEnumerable<IEnumerable<FeedItem>> GetAllFeedItems()
|
||||||
{
|
{
|
||||||
var allFeedItems = new List<FeedItem>();
|
var maxId = 1;
|
||||||
|
|
||||||
var response = (await GetFeedItems()).ToList();
|
do
|
||||||
|
|
||||||
while (response.Count > 0)
|
|
||||||
{
|
{
|
||||||
allFeedItems.AddRange(response);
|
var response = await GetFeedItems(maxId);
|
||||||
|
|
||||||
response = (await GetFeedItems(response.Max(fi => fi.Id))).ToList();
|
var feedItemList = response.ToArray();
|
||||||
}
|
|
||||||
|
|
||||||
return allFeedItems;
|
yield return feedItemList;
|
||||||
|
|
||||||
|
if (feedItemList.Length == 0)
|
||||||
|
yield break;
|
||||||
|
|
||||||
|
maxId = feedItemList.Max(fi => fi.Id);
|
||||||
|
} while (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task MarkFeedItemAsRead(int feedItemId)
|
public async Task MarkFeedItemAsRead(int feedItemId)
|
||||||
|
|||||||
Reference in New Issue
Block a user