private Task <FeedResponse <DatabaseProperties> > DatabaseFeedRequestExecutorAsync(
            int?maxItemCount,
            string continuationToken,
            RequestOptions options,
            object state,
            CancellationToken cancellationToken)
        {
            Debug.Assert(state == null);

            Uri resourceUri = new Uri(Paths.Databases_Root, UriKind.Relative);

            return(this.ClientContext.ProcessResourceOperationAsync <FeedResponse <DatabaseProperties> >(
                       resourceUri: resourceUri,
                       resourceType: ResourceType.Database,
                       operationType: OperationType.ReadFeed,
                       requestOptions: options,
                       cosmosContainerCore: null,
                       partitionKey: null,
                       streamPayload: null,
                       requestEnricher: request =>
            {
                QueryRequestOptions.FillContinuationToken(request, continuationToken);
                QueryRequestOptions.FillMaxItemCount(request, maxItemCount);
            },
                       responseCreator: response => this.ClientContext.ResponseFactory.CreateResultSetQueryResponse <DatabaseProperties>(response),
                       cancellationToken: cancellationToken));
        }
Exemplo n.º 2
0
        private Task <FeedResponse <CosmosContainerSettings> > ContainerFeedRequestExecutorAsync(
            int?maxItemCount,
            string continuationToken,
            RequestOptions options,
            object state,
            CancellationToken cancellationToken)
        {
            Debug.Assert(state == null);

            return(this.ClientContext.ProcessResourceOperationAsync <FeedResponse <CosmosContainerSettings> >(
                       resourceUri: this.LinkUri,
                       resourceType: ResourceType.Collection,
                       operationType: OperationType.ReadFeed,
                       requestOptions: options,
                       cosmosContainerCore: null,
                       partitionKey: null,
                       streamPayload: null,
                       requestEnricher: request =>
            {
                QueryRequestOptions.FillContinuationToken(request, continuationToken);
                QueryRequestOptions.FillMaxItemCount(request, maxItemCount);
            },
                       responseCreator: response => this.ClientContext.ResponseFactory.CreateResultSetQueryResponse <CosmosContainerSettings>(response),
                       cancellationToken: cancellationToken));
        }
Exemplo n.º 3
0
        internal override async Task <QueryResponse> ExecuteItemQueryAsync(
            Uri resourceUri,
            ResourceType resourceType,
            OperationType operationType,
            string containerResourceId,
            QueryRequestOptions requestOptions,
            SqlQuerySpec sqlQuerySpec,
            string continuationToken,
            PartitionKeyRangeIdentity partitionKeyRange,
            bool isContinuationExpected,
            int pageSize,
            CancellationToken cancellationToken)
        {
            ResponseMessage message = await this.clientContext.ProcessResourceOperationStreamAsync(
                resourceUri : resourceUri,
                resourceType : resourceType,
                operationType : operationType,
                requestOptions : requestOptions,
                partitionKey : requestOptions.PartitionKey,
                cosmosContainerCore : this.cosmosContainerCore,
                streamPayload : this.clientContext.CosmosSerializer.ToStream <SqlQuerySpec>(sqlQuerySpec),
                requestEnricher : (cosmosRequestMessage) =>
            {
                this.PopulatePartitionKeyRangeInfo(cosmosRequestMessage, partitionKeyRange);
                cosmosRequestMessage.Headers.Add(
                    HttpConstants.HttpHeaders.IsContinuationExpected,
                    isContinuationExpected.ToString());
                QueryRequestOptions.FillContinuationToken(
                    cosmosRequestMessage,
                    continuationToken);
                QueryRequestOptions.FillMaxItemCount(
                    cosmosRequestMessage,
                    pageSize);
                cosmosRequestMessage.Headers.Add(HttpConstants.HttpHeaders.ContentType, MediaTypes.QueryJson);
                cosmosRequestMessage.Headers.Add(HttpConstants.HttpHeaders.IsQuery, bool.TrueString);
            },
                cancellationToken : cancellationToken);

            return(this.GetCosmosElementResponse(
                       requestOptions,
                       resourceType,
                       containerResourceId,
                       message));
        }
 private Task <CosmosResponseMessage> ContainerStreamFeedRequestExecutorAsync(
     int?maxItemCount,
     string continuationToken,
     RequestOptions requestOptions,
     object state,
     CancellationToken cancellationToken)
 {
     return(this.ClientContext.ProcessResourceOperationAsStreamAsync(
                resourceUri: this.database.LinkUri,
                resourceType: ResourceType.Collection,
                operationType: OperationType.ReadFeed,
                cosmosContainerCore: null,
                partitionKey: null,
                streamPayload: null,
                requestOptions: requestOptions,
                requestEnricher: request =>
     {
         QueryRequestOptions.FillContinuationToken(request, continuationToken);
         QueryRequestOptions.FillMaxItemCount(request, maxItemCount);
     },
                cancellationToken: cancellationToken));
 }
Exemplo n.º 5
0
 private Task <CosmosResponseMessage> ConflictsFeedStreamRequestExecutorAsync(
     int?maxItemCount,
     string continuationToken,
     RequestOptions options,
     object state,
     CancellationToken cancellationToken)
 {
     return(this.clientContext.ProcessResourceOperationAsync <CosmosResponseMessage>(
                resourceUri: this.container.LinkUri,
                resourceType: ResourceType.Conflict,
                operationType: OperationType.ReadFeed,
                requestOptions: options,
                requestEnricher: request =>
     {
         QueryRequestOptions.FillContinuationToken(request, continuationToken);
         QueryRequestOptions.FillMaxItemCount(request, maxItemCount);
     },
                responseCreator: response => response,
                cosmosContainerCore: this.container,
                partitionKey: null,
                streamPayload: null,
                cancellationToken: cancellationToken));
 }