예제 #1
0
 public virtual TableQuerySegment <TElement> ExecuteQuerySegmented <TElement>(TableQuery <TElement> query, TableContinuationToken token, TableRequestOptions requestOptions = null, OperationContext operationContext = null) where TElement : ITableEntity, new()
 {
     CommonUtility.AssertNotNull("query", query);
     if (query.Provider != null)
     {
         return(query.ExecuteSegmented(token, requestOptions, operationContext));
     }
     return(query.ExecuteQuerySegmentedInternal(token, ServiceClient, this, requestOptions, operationContext));
 }
예제 #2
0
        public static IEnumerable <U> MapSegment <T, U>(this TableQuery <T> query, Func <IList <T>, U> func)
        {
            TableContinuationToken token = null;

            do
            {
                var segment = query.ExecuteSegmented(token);
                if (segment.Results.Count > 0)
                {
                    yield return(func(segment.Results));
                }
                token = segment.ContinuationToken;
            } while (token != null);
        }
예제 #3
0
        public static void ForEachSegment <T>(this TableQuery <T> query, Action <IList <T> > action)
        {
            TableContinuationToken token = null;

            do
            {
                var segment = query.ExecuteSegmented(token);
                if (segment.Results.Count > 0)
                {
                    action(segment.Results);
                }
                token = segment.ContinuationToken;
            } while (token != null);
        }
예제 #4
0
        public static U AggregateSegment <T, U>(this TableQuery <T> query, U seed, Func <IEnumerable <T>, U> selector,
                                                Func <U, U, U> aggregator)
        {
            TableContinuationToken token = null;

            do
            {
                var segment = query.ExecuteSegmented(token);
                if (segment.Results.Count > 0)
                {
                    var newList = selector(segment.Results);
                    seed = aggregator(seed, newList);
                }

                token = segment.ContinuationToken;
            } while (token != null);

            return(seed);
        }