Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }