public AstNotFilterOperation Update(AstFilterOperation operation) { if (operation == _operation) { return(this); } return(new AstNotFilterOperation(operation)); }
public AstFieldOperationFilter Update(AstFilterField field, AstFilterOperation operation) { if (field == _field && operation == _operation) { return(this); } return(new AstFieldOperationFilter(field, operation)); }
public AstFieldOperationFilter(AstFilterField field, AstFilterOperation operation) { _field = Ensure.IsNotNull(field, nameof(field)); _operation = Ensure.IsNotNull(operation, nameof(operation)); if (operation.NodeType == AstNodeType.RegexFilterOperation && field.Serializer is IRepresentationConfigurable representationConfigurable && representationConfigurable.Representation != BsonType.String) { // normally an ExpressionNotSupported should have been thrown before reaching here throw new ArgumentException($"Field must be represented as a string for regex filter operations: {field.Path}", nameof(field)); } }
private bool OperationCanBeUsedInImplicitAnd(AstFilterOperation operation) { switch (operation.NodeType) { case AstNodeType.GeoIntersectsFilterOperation: case AstNodeType.GeoNearStage: case AstNodeType.GeoWithinBoxFilterOperation: case AstNodeType.GeoWithinCenterFilterOperation: case AstNodeType.GeoWithinCenterSphereFilterOperation: case AstNodeType.GeoWithinFilterOperation: case AstNodeType.NearFilterOperation: case AstNodeType.NearSphereFilterOperation: return(false); default: return(true); } }
public AstNotFilterOperation(AstFilterOperation operation) { _operation = Ensure.IsNotNull(operation, nameof(operation)); }
public AstFieldOperationFilter(AstFilterField field, AstFilterOperation operation) { _field = Ensure.IsNotNull(field, nameof(field)); _operation = Ensure.IsNotNull(operation, nameof(operation)); }