public async Task <DailyUsageListSegment> ListDailyUsagesSegmentedAsync(DailyUsageListingOptions options = null, CancellationToken cancellationToken = default)
        {
            // Generate the additional parameters, where needed

            var restClient = _restClientFactory.Build();

            // Send the request to the Verifalia servers

            Dictionary <string, string> queryParams = null;

            if (options != null)
            {
                queryParams = new Dictionary <string, string>();

                // Standard parameters

                if (options.Limit > 0)
                {
                    queryParams["limit"] = options.Limit.ToString(CultureInfo.InvariantCulture);
                }

                // Predicates

                if (options.DateFilter != null)
                {
                    foreach (var fragment in options.DateFilter.Serialize("date"))
                    {
                        queryParams[fragment.Key] = fragment.Value;
                    }
                }
            }

            return(await ListDailyUsageSegmentedImplAsync(restClient, queryParams, cancellationToken)
                   .ConfigureAwait(false));
        }
 public IAsyncEnumerable <DailyUsage> ListDailyUsagesAsync(DailyUsageListingOptions options = null, CancellationToken cancellationToken = default)
 {
     return(AsyncEnumerableHelper
            .ToAsyncEnumerable <DailyUsageListSegment, DailyUsage, DailyUsageListingOptions>(
                ListDailyUsagesSegmentedAsync,
                ListDailyUsagesSegmentedAsync,
                options,
                cancellationToken));
 }