private static CosmosRequestMessage GenerateCosmosRequestMessage( Uri resourceUri, ResourceType resourceType, OperationType operationType, CosmosRequestOptions requestOptions, Object partitionKey, Stream streamPayload, Action <CosmosRequestMessage> requestEnricher) { HttpMethod method = ExecUtils.GetHttpMethod(operationType); CosmosRequestMessage request = new CosmosRequestMessage(method, resourceUri); request.OperationType = operationType; request.ResourceType = resourceType; request.RequestOptions = requestOptions; request.Content = streamPayload; if (partitionKey != null) { PartitionKey pk = new PartitionKey(partitionKey); request.Headers.PartitionKey = pk.InternalKey.ToJsonString(); } if (operationType == OperationType.Upsert) { request.Headers.IsUpsert = bool.TrueString; } requestEnricher?.Invoke(request); return(request); }
private static async Task <CosmosRequestMessage> GenerateCosmosRequestMessage( Uri resourceUri, ResourceType resourceType, OperationType operationType, CosmosRequestOptions requestOptions, CosmosContainerCore cosmosContainerCore, Object partitionKey, Stream streamPayload, Action <CosmosRequestMessage> requestEnricher) { HttpMethod method = ExecUtils.GetHttpMethod(operationType); CosmosRequestMessage request = new CosmosRequestMessage(method, resourceUri); request.OperationType = operationType; request.ResourceType = resourceType; request.RequestOptions = requestOptions; request.Content = streamPayload; if (partitionKey != null) { if (cosmosContainerCore == null && partitionKey.Equals(PartitionKey.None)) { throw new ArgumentException($"{nameof(cosmosContainerCore)} can not be null with partition key as PartitionKey.None"); } else if (partitionKey.Equals(PartitionKey.None)) { PartitionKeyInternal partitionKeyInternal = await cosmosContainerCore.GetNonePartitionKeyValue(); request.Headers.PartitionKey = partitionKeyInternal.ToJsonString(); } else { PartitionKey pk = new PartitionKey(partitionKey); request.Headers.PartitionKey = pk.InternalKey.ToJsonString(); } } if (operationType == OperationType.Upsert) { request.Headers.IsUpsert = bool.TrueString; } requestEnricher?.Invoke(request); return(request); }