public static void Paginate <TResource>(this ResourceCollection <TResource> source, IOctopusRepository repository, Func <ResourceCollection <TResource>, bool> getNextPage) { while (getNextPage(source) && source.Items.Count > 0 && source.HasNextPage()) { source = repository.Client.List <TResource>(source.NextPageLink()); } }
public static async Task Paginate <TResource>(this ResourceCollection <TResource> source, IOctopusAsyncRepository repository, Func <ResourceCollection <TResource>, bool> getNextPage) { while (getNextPage(source) && source.Items.Count > 0 && source.HasNextPage()) { source = await repository.Client.List <TResource>(source.NextPageLink()).ConfigureAwait(false); } }
public static async Task <IEnumerable <TResource> > GetAllPages <TResource>(this ResourceCollection <TResource> source, IOctopusAsyncRepository repository) { var items = source.Items.ToList(); while (source.HasNextPage()) { source = await repository.Client.List <TResource>(source.NextPageLink()).ConfigureAwait(false); items.AddRange(source.Items); } return(items); }
public static IEnumerable <TResource> GetAllPages <TResource>(this ResourceCollection <TResource> source, IOctopusRepository repository) { foreach (var item in source.Items) { yield return(item); } while (source.HasNextPage()) { source = repository.Client.List <TResource>(source.NextPageLink()); foreach (var item in source.Items) { yield return(item); } } }