public virtual Task <TableQuerySegment <TElement> > ExecuteQuerySegmentedAsync <TElement>(TableQuery <TElement> query, TableContinuationToken token, TableRequestOptions requestOptions, OperationContext operationContext, CancellationToken cancellationToken) where TElement : ITableEntity, new() { CommonUtility.AssertNotNull("query", query); if (query.Provider != null) { return(query.ExecuteSegmentedAsync(token, requestOptions, operationContext, cancellationToken)); } return(query.ExecuteQuerySegmentedInternalAsync(token, ServiceClient, this, requestOptions, operationContext, cancellationToken)); }
public static async IAsyncEnumerable <U> MapSegmentAsync <T, U>(this TableQuery <T> query, Func <IList <T>, U> func) { TableContinuationToken token = null; do { var segment = await query.ExecuteSegmentedAsync(token); if (segment.Results.Count > 0) { yield return(func(segment.Results)); } token = segment.ContinuationToken; } while (token != null); }
public static async Task ForEachSegmentAsync <T>(this TableQuery <T> query, Action <IList <T> > action) { TableContinuationToken token = null; do { var segment = await query.ExecuteSegmentedAsync(token); if (segment.Results.Count > 0) { action(segment.Results); } token = segment.ContinuationToken; } while (token != null); }
public static async Task <U> AggregateSegmentAsync <T, U>(this TableQuery <T> query, U seed, Func <IEnumerable <T>, U> selector, Func <U, U, U> aggregator) { TableContinuationToken token = null; do { var segment = await query.ExecuteSegmentedAsync(token); if (segment.Results.Count > 0) { var newList = selector(segment.Results); seed = aggregator(seed, newList); } token = segment.ContinuationToken; } while (token != null); return(seed); }