Exemplo n.º 1
0
        /// <summary>
        /// Creates an OrderByDocumentQueryExecutionContext
        /// </summary>
        /// <param name="constructorParams">The parameters for the base class constructor.</param>
        /// <param name="initParams">The parameters to initialize the base class.</param>
        /// <param name="token">The cancellation token.</param>
        /// <returns>A task to await on, which in turn creates an OrderByDocumentQueryExecutionContext.</returns>
        public static async Task <OrderByDocumentQueryExecutionContext> CreateAsync(
            DocumentQueryExecutionContextBase.InitParams constructorParams,
            CrossPartitionQueryExecutionContext.CrossPartitionInitParams initParams,
            CancellationToken token)
        {
            Debug.Assert(
                initParams.PartitionedQueryExecutionInfo.QueryInfo.HasOrderBy,
                "OrderBy~Context must have order by query info.");

            OrderByDocumentQueryExecutionContext context = new OrderByDocumentQueryExecutionContext(
                constructorParams,
                initParams.PartitionedQueryExecutionInfo.QueryInfo.RewrittenQuery,
                new OrderByConsumeComparer(initParams.PartitionedQueryExecutionInfo.QueryInfo.OrderBy));

            await context.InitializeAsync(
                initParams.RequestContinuation,
                initParams.CollectionRid,
                initParams.PartitionKeyRanges,
                initParams.InitialPageSize,
                initParams.PartitionedQueryExecutionInfo.QueryInfo.OrderBy,
                initParams.PartitionedQueryExecutionInfo.QueryInfo.OrderByExpressions,
                token);

            return(context);
        }
Exemplo n.º 2
0
        public static async Task <OrderByDocumentQueryExecutionContext> CreateAsync(
            IDocumentQueryClient client,
            ResourceType resourceTypeEnum,
            Type resourceType,
            Expression expression,
            FeedOptions feedOptions,
            string resourceLink,
            string collectionRid,
            PartitionedQueryExecutionInfo partitionedQueryExecutionInfo,
            List <PartitionKeyRange> partitionKeyRanges,
            int initialPageSize,
            bool isContinuationExpected,
            bool getLazyFeedResponse,
            string requestContinuation,
            CancellationToken token,
            Guid correlatedActivityId)
        {
            Debug.Assert(
                partitionedQueryExecutionInfo.QueryInfo.HasOrderBy,
                "OrderBy~Context must have order by query info.");

            OrderByDocumentQueryExecutionContext context = new OrderByDocumentQueryExecutionContext(
                client,
                resourceTypeEnum,
                resourceType,
                expression,
                feedOptions,
                resourceLink,
                partitionedQueryExecutionInfo.QueryInfo.RewrittenQuery,
                isContinuationExpected,
                getLazyFeedResponse,
                new OrderByConsumeComparer(partitionedQueryExecutionInfo.QueryInfo.OrderBy),
                collectionRid,
                correlatedActivityId);

            await context.InitializeAsync(
                collectionRid,
                partitionedQueryExecutionInfo.QueryRanges,
                partitionKeyRanges,
                partitionedQueryExecutionInfo.QueryInfo.OrderBy,
                partitionedQueryExecutionInfo.QueryInfo.OrderByExpressions,
                initialPageSize,
                requestContinuation,
                token);

            return(context);
        }