private async Task <IEnumerable <WooCommerceProduct> > CollectProductsFromAllPagesAsync(Dictionary <string, string> productFilters, int pageSize) { var products = new List <WooCommerceProduct>(); for (var page = 1; ; page++) { var pageFilter = EndpointsBuilder.CreateLegacyApiV3GetPageAndLimitFilter(new WooCommerceCommandConfig(page, pageSize)); var combinedFilters = productFilters.Concat(pageFilter).ToDictionary(f => f.Key, f => f.Value); var productsWithinPage = await GetNextProductPageAsync(combinedFilters); if (!productsWithinPage.Any()) { break; } products.AddRange(productsWithinPage); } return(products); }
private async Task <IEnumerable <WooCommerceOrder> > CollectOrdersFromAllPagesAsync(Dictionary <string, string> ordersFilters, int pageSize) { var orders = new List <WooCommerceOrder>(); for (var page = 1; ; page++) { var pageFilter = EndpointsBuilder.CreateLegacyApiV3GetPageAndLimitFilter(new WooCommerceCommandConfig(page, pageSize)); var combinedFilters = ordersFilters.Concat(pageFilter).ToDictionary(f => f.Key, f => f.Value); var ordersWithinPage = await this._legacyApiWCObject.GetOrders(combinedFilters).ConfigureAwait(false); if (!ordersWithinPage.Any()) { break; } orders.AddRange(ordersWithinPage.Select(order => order.ToSvOrder()).ToList()); } return(orders); }