public IAsyncEnumerable <ValidationOverview> ListAsync(ValidationOverviewListingOptions options = null, CancellationToken cancellationToken = default) { return(AsyncEnumerableHelper .ToAsyncEnumerable <ValidationOverviewListSegment, ValidationOverview, ValidationOverviewListingOptions>( ListSegmentedAsync, ListSegmentedAsync, options, cancellationToken)); }
public async Task <ValidationOverviewListSegment> ListSegmentedAsync(ValidationOverviewListingOptions options = default, 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>(); if (options.Limit > 0) { queryParams["limit"] = options.Limit.ToString(CultureInfo.InvariantCulture); } switch (options.OrderBy) { case ValidationOverviewListingField.CreatedOn: queryParams["sort"] = $"{(options.Direction == Direction.Backward ? "-" : null)}createdOn"; break; default: throw new ArgumentOutOfRangeException(nameof(options)); } } using (var response = await restClient .InvokeAsync(HttpMethod.Get, "email-validations", queryParams: queryParams, headers: new Dictionary <string, object> { { "Accept", WellKnownMimeContentTypes.ApplicationJson } }, cancellationToken: cancellationToken) .ConfigureAwait(false)) { return(await ListSegmentedImplAsync(restClient, response, cancellationToken) .ConfigureAwait(false)); } }