private static SqlQuerySpec HandleMethodCallExpression(MethodCallExpression expression) { if (DocumentQueryEvaluator.IsTransformExpression(expression)) { if (string.Compare(expression.Method.Name, DocumentQueryEvaluator.SQLMethod, StringComparison.Ordinal) == 0) { return(DocumentQueryEvaluator.HandleAsSqlTransformExpression(expression)); } else { throw new DocumentQueryException( string.Format(CultureInfo.CurrentUICulture, ClientResources.BadQuery_InvalidExpression, expression.ToString())); } } if (DocumentQueryEvaluator.IsSupportedMethod(expression)) { return(SqlTranslator.TranslateQuery(expression)); } throw new DocumentQueryException( string.Format(CultureInfo.CurrentUICulture, ClientResources.BadQuery_InvalidExpression, expression.ToString())); }
private FeedIterator <T> CreateFeedIterator(bool isContinuationExcpected) { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression, this.serializationOptions); FeedIteratorInternal streamIterator = this.CreateStreamIterator(isContinuationExcpected); return(new FeedIteratorInlineCore <T>(new FeedIteratorCore <T>( streamIterator, this.responseFactory.CreateQueryFeedUserTypeResponse <T>))); }
private FeedIterator CreateStreamIterator(bool isContinuationExcpected) { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression, this.serializationOptions); return(this.container.GetItemQueryStreamIteratorInternal( sqlQuerySpec: querySpec, isContinuationExcpected: isContinuationExcpected, continuationToken: this.continuationToken, requestOptions: this.cosmosQueryRequestOptions)); }
private FeedIterator <T> CreateFeedIterator(bool isContinuationExcpected) { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression); FeedIterator streamIterator = this.CreateStreamIterator(isContinuationExcpected); return(new FeedIteratorCore <T>( streamIterator, this.responseFactory.CreateQueryFeedResponse <T>)); }
public override string ToString() { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression, this.serializationOptions); if (querySpec != null) { return(JsonConvert.SerializeObject(querySpec)); } return(this.container.LinkUri.ToString()); }
public override string ToString() { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.expression); if (querySpec != null) { return(JsonConvert.SerializeObject(querySpec)); } return(new Uri(this.client.ServiceEndpoint, this.documentsFeedOrDatabaseLink).ToString()); }
public string ToSqlQueryText() { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.expression); if (querySpec != null) { return(querySpec.QueryText); } return(container.LinkUri.ToString()); }
private FeedIterator <T> CreateFeedIterator(bool isContinuationExcpected) { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression); FeedIterator streamIterator = this.container.GetItemQueryStreamIteratorInternal( sqlQuerySpec: querySpec, isContinuationExcpected: isContinuationExcpected, continuationToken: this.continuationToken, requestOptions: this.cosmosQueryRequestOptions); return(new FeedIteratorCore <T>( streamIterator, this.responseFactory.CreateQueryFeedResponse <T>)); }
private CosmosQueryExecutionContext CreateCosmosQueryExecutionContext() { CosmosQueryExecutionContext cosmosQueryExecution = new CosmosQueryExecutionContextFactory( client: this.queryClient, resourceTypeEnum: ResourceType.Document, operationType: OperationType.Query, resourceType: typeof(T), sqlQuerySpec: DocumentQueryEvaluator.Evaluate(expression), queryRequestOptions: this.cosmosQueryRequestOptions, resourceLink: this.container.LinkUri, isContinuationExpected: true, allowNonValueAggregateQuery: true, correlatedActivityId: Guid.NewGuid()); return(cosmosQueryExecution); }
public static SqlQuerySpec Evaluate(Expression expression) { switch (expression.NodeType) { case ExpressionType.Constant: { return(DocumentQueryEvaluator.HandleEmptyQuery((ConstantExpression)expression)); } case ExpressionType.Call: { return(DocumentQueryEvaluator.HandleMethodCallExpression((MethodCallExpression)expression)); } default: throw new DocumentQueryException( string.Format(CultureInfo.CurrentUICulture, ClientResources.BadQuery_InvalidExpression, expression.ToString())); } }
private static SqlQuerySpec HandleMethodCallExpression( MethodCallExpression expression, IDictionary <object, string> parameters, CosmosSerializationOptions serializationOptions = null) { if (DocumentQueryEvaluator.IsTransformExpression(expression)) { if (string.Compare(expression.Method.Name, DocumentQueryEvaluator.SQLMethod, StringComparison.Ordinal) == 0) { return(DocumentQueryEvaluator.HandleAsSqlTransformExpression(expression)); } else { throw new DocumentQueryException( string.Format(CultureInfo.CurrentUICulture, ClientResources.BadQuery_InvalidExpression, expression.ToString())); } } return(SqlTranslator.TranslateQuery(expression, serializationOptions, parameters)); }
public static SqlQuerySpec Evaluate( Expression expression, CosmosSerializationOptions serializationOptions = null, IDictionary <object, string> parameters = null) { switch (expression.NodeType) { case ExpressionType.Constant: { return(DocumentQueryEvaluator.HandleEmptyQuery((ConstantExpression)expression)); } case ExpressionType.Call: { return(DocumentQueryEvaluator.HandleMethodCallExpression((MethodCallExpression)expression, parameters, serializationOptions)); } default: throw new DocumentQueryException( string.Format(CultureInfo.CurrentUICulture, ClientResources.BadQuery_InvalidExpression, expression.ToString())); } }
public QueryDefinition ToQueryDefinition(IDictionary <object, string> parameters = null) { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression, this.serializationOptions, parameters); return(new QueryDefinition(querySpec)); }
public QueryDefinition ToQueryDefinition() { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression, this.serializationOptions); return(new QueryDefinition(querySpec)); }
public string ToSqlQueryText() { SqlQuerySpec querySpec = DocumentQueryEvaluator.Evaluate(this.Expression); return(querySpec?.QueryText); }