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));
            }
        }
Ejemplo n.º 3
0
 public static AstFieldOperationFilter Eq(AstFilterField field, BsonValue value)
 {
     return(new AstFieldOperationFilter(field, new AstComparisonFilterOperation(AstComparisonFilterOperator.Eq, value)));
 }
Ejemplo n.º 4
0
 public static AstFieldOperationFilter ElemMatch(AstFilterField field, AstFilter filter)
 {
     return(new AstFieldOperationFilter(field, new AstElemMatchFilterOperation(filter)));
 }
Ejemplo n.º 5
0
 public static AstFieldOperationFilter Compare(AstFilterField field, AstComparisonFilterOperator comparisonOperator, BsonValue value)
 {
     return(new AstFieldOperationFilter(field, new AstComparisonFilterOperation(comparisonOperator, value)));
 }
Ejemplo n.º 6
0
 public static AstFieldOperationFilter BitsAnySet(AstFilterField field, BsonValue bitMask)
 {
     return(new AstFieldOperationFilter(field, new AstBitsAnySetFilterOperation(bitMask)));
 }
Ejemplo n.º 7
0
 // public static methods
 public static AstFilter All(AstFilterField field, IEnumerable <BsonValue> values)
 {
     return(new AstFieldOperationFilter(field, new AstAllFilterOperation(values)));
 }
Ejemplo n.º 8
0
 public static AstFieldOperationFilter Size(AstFilterField field, BsonValue size)
 {
     return(new AstFieldOperationFilter(field, new AstSizeFilterOperation(size)));
 }
Ejemplo n.º 9
0
 public static AstFieldOperationFilter Regex(AstFilterField field, string pattern, string options)
 {
     return(new AstFieldOperationFilter(field, new AstRegexFilterOperation(pattern, options)));
 }
Ejemplo n.º 10
0
 public static AstFieldOperationFilter Mod(AstFilterField field, BsonValue divisor, BsonValue remainder)
 {
     return(new AstFieldOperationFilter(field, new AstModFilterOperation(divisor, remainder)));
 }
Ejemplo n.º 11
0
 public AstFieldOperationFilter(AstFilterField field, AstFilterOperation operation)
 {
     _field     = Ensure.IsNotNull(field, nameof(field));
     _operation = Ensure.IsNotNull(operation, nameof(operation));
 }