private static RequestOptions GetRequestOptions(IHaveRequestOptions request) { return(new RequestOptions { ConsistencyLevel = request.ConsistencyLevel, IndexingDirective = request.IndexingDirective, PreTriggerInclude = request.PreTrigger != null ? new List <string> { request.PreTrigger } : null, PostTriggerInclude = request.PreTrigger != null ? new List <string> { request.PostTrigger } : null, PartitionKey = GetPartitionKey(request.PartitionKeyValue), AccessCondition = request.AccessConditionType != null ? new AccessCondition { Condition = request.AccessCondition, Type = request.AccessConditionType.Value } : null, }); }
private static RequestOptions GetRequestOptions(IHaveRequestOptions request) { return(new RequestOptions { ConsistencyLevel = request.ConsistencyLevel, IndexingDirective = request.IndexingDirective, PreTriggerInclude = request.PreTrigger != null ? new List <string> { request.PreTrigger } : null, PostTriggerInclude = request.PreTrigger != null ? new List <string> { request.PostTrigger } : null, PartitionKey = GetPartitionKey(request.PartitionKeyValue), AccessCondition = request.AccessConditionType != null ? new AccessCondition { Condition = request.AccessCondition, Type = request.AccessConditionType.Value } : null, JsonSerializerSettings = new JsonSerializerSettings { DateParseHandling = DateParseHandling.None } }); }
public Task <ResourceResponse <Document> > UpdateDocumentAsync(Connection connection, string altLink, string content, IHaveRequestOptions requestOptions) { var instance = JObject.Parse(content); var options = GetRequestOptions(requestOptions); return(GetClient(connection).UpsertDocumentAsync(altLink, instance, options)); }
public async Task <int> ImportDocumentAsync(Connection connection, DocumentCollection collection, string content, IHaveRequestOptions requestOptions, CancellationToken cancellationToken) { var documents = GetDocuments(content).ToList(); var options = GetRequestOptions(requestOptions); foreach (var document in documents) { if (cancellationToken.IsCancellationRequested) { cancellationToken.ThrowIfCancellationRequested(); } await GetClient(connection).UpsertDocumentAsync(collection.SelfLink, document, options, disableAutomaticIdGeneration: true).ConfigureAwait(false); } return(documents.Count); }
public async Task <DocumentDescriptionList> GetDocumentsAsync(Connection connection, DocumentCollection collection, string filter, int maxItems, string continuationToken, IHaveRequestOptions requestOptions) { var token = collection.PartitionKey.GetQueryToken(); if (token != null) { token = $", c{token} as _partitionKey"; } var sql = $"SELECT c.id, c._self {token} FROM c {filter}"; var feedOptions = new FeedOptions { MaxItemCount = maxItems, RequestContinuation = continuationToken, EnableCrossPartitionQuery = true, EnableScanInQuery = false, PartitionKey = GetPartitionKey(requestOptions?.PartitionKeyValue), MaxDegreeOfParallelism = -1, MaxBufferedItemCount = -1, PopulateQueryMetrics = true, }; var data = await GetClient(connection) .CreateDocumentQuery(collection.DocumentsLink, sql, feedOptions) .AsDocumentQuery() .ExecuteNextAsync <DocumentDescription>().ConfigureAwait(true); return(new DocumentDescriptionList(data.ToList()) { ContinuationToken = data.ResponseContinuation, RequestCharge = data.RequestCharge }); }