Beispiel #1
0
 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);
        }
Beispiel #4
0
        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);
                }
            }
        }