Beispiel #1
0
        internal static async Task <List <T> > Depage(Paging <T> page, LoadingStatus status = null)
        {
            var loadedItems = page.Items;
            var passedPage  = page;

            status?.SetAvailable(page.Total);
            status?.SetLoaded(loadedItems.Count);

            // then iterate over all the next pages
            while (page.HasNextPage())
            {
                page = await API.S.GetNextPageAsync(page);

                loadedItems.AddRange(page.Items);
                status?.SetLoaded(loadedItems.Count);
            }

            // Handle previous pages if supplied page parameter was not the first page
            while (passedPage.HasPreviousPage())
            {
                passedPage = await API.S.GetPreviousPageAsync(passedPage);

                loadedItems.AddRange(passedPage.Items);
                status?.SetLoaded(loadedItems.Count);
            }

            return(loadedItems);
        }