internal static Task <T> ProcessResourceOperationAsync <T>( CosmosClient client, Uri resourceUri, ResourceType resourceType, OperationType operationType, CosmosRequestOptions requestOptions, Object partitionKey, Stream streamPayload, Action <CosmosRequestMessage> requestEnricher, Func <CosmosResponseMessage, T> responseCreator, CancellationToken cancellationToken) { CosmosRequestMessage request = ExecUtils.GenerateCosmosRequestMessage( client, resourceUri, resourceType, operationType, requestOptions, partitionKey, streamPayload, requestEnricher); return(client.RequestHandler.SendAsync(request, cancellationToken) .ContinueWith(task => responseCreator(task.Result), cancellationToken)); }
internal static async Task <T> ProcessResourceOperationAsync <T>( CosmosRequestHandler requestHandler, Uri resourceUri, ResourceType resourceType, OperationType operationType, CosmosRequestOptions requestOptions, CosmosContainerCore cosmosContainerCore, Object partitionKey, Stream streamPayload, Action <CosmosRequestMessage> requestEnricher, Func <CosmosResponseMessage, T> responseCreator, CancellationToken cancellationToken) { if (requestHandler == null) { throw new ArgumentException(nameof(requestHandler)); } if (resourceUri == null) { throw new ArgumentNullException(nameof(resourceUri)); } if (responseCreator == null) { throw new ArgumentNullException(nameof(responseCreator)); } CosmosRequestMessage request = await ExecUtils.GenerateCosmosRequestMessage( resourceUri, resourceType, operationType, requestOptions, cosmosContainerCore, partitionKey, streamPayload, requestEnricher); CosmosResponseMessage response = await requestHandler.SendAsync(request, cancellationToken); return(responseCreator(response)); }
internal static Task <CosmosResponseMessage> ProcessResourceOperationStreamAsync( CosmosClient client, Uri resourceUri, ResourceType resourceType, OperationType operationType, CosmosRequestOptions requestOptions, Object partitionKey, Stream streamPayload, Action <CosmosRequestMessage> requestEnricher, CancellationToken cancellationToken) { CosmosRequestMessage request = ExecUtils.GenerateCosmosRequestMessage( resourceUri, resourceType, operationType, requestOptions, partitionKey, streamPayload, requestEnricher); return(client.RequestHandler.SendAsync(request, cancellationToken)); }