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));
            }
        }
Ejemplo n.º 4
0
        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));
 }
Ejemplo n.º 6
0
 public AstFieldOperationFilter(AstFilterField field, AstFilterOperation operation)
 {
     _field     = Ensure.IsNotNull(field, nameof(field));
     _operation = Ensure.IsNotNull(operation, nameof(operation));
 }