public DynamoQuery Filter(params Expression[] conditions) { if (_filter == null) { if (ExpressionAttributeNames == null) { ExpressionAttributeNames = new JsonObject(); } if (ExpressionAttributeValues == null) { ExpressionAttributeValues = new AttributeCollection(); } _filter = new DynamoExpression(ExpressionAttributeNames, ExpressionAttributeValues); } foreach (var condition in conditions) { _filter.Add(condition); } this.FilterExpression = _filter.Text; return(this); }
public static DynamoExpression FromExpression(Expression expression) { var result = new DynamoExpression(); result.Add(expression); return(result); }
public static DynamoExpression FromExpression(Expression expression) { var result = new DynamoExpression(); // TODO: Flatten conjunctions... result.Add(expression); return(result); }
public DynamoQueryExpression(string[] keyNames, Expression[] expressions) { this.keyNames = keyNames; KeyExpression = new DynamoExpression(AttributeNames, AttributeValues); foreach (var expression in expressions) { if (expression is BinaryExpression) { var e = (BinaryExpression)expression; if (IsKey(e.Left.ToString())) { KeyExpression.Add(e); } else { AddFilterExpression(e); } } else if (expression is BetweenExpression) { var e = (BetweenExpression)expression; if (IsKey(e.Property.ToString())) { KeyExpression.Add(e); } else { AddFilterExpression(e); } } else { throw new Exception("Unexpected expression type:" + expression); } } }
// TODO: Expand BinaryExpression public DynamoQueryExpression(string[] keyNames, Expression[] expressions) { this.keyNames = keyNames; KeyExpression = new DynamoExpression(AttributeNames, AttributeValues); foreach (Expression expression in expressions) { if (expression is BinaryExpression be) { if (IsKey(be.Left.ToString() !)) { KeyExpression.Add(be); } else { AddFilterExpression(be); } }