Esempio n. 1
0
        protected override Expression VisitBinary(BinaryExpression expression)
        {
            if (expression.Type == typeof(bool) && expression.NodeType == ExpressionType.NotEqual)
            {
                var binaryExpression = expression.As <BinaryExpression>();
                var locator          = _mapping.JsonLocator(binaryExpression.Left);
                if (binaryExpression.Right.NodeType == ExpressionType.Constant &&
                    binaryExpression.Right.As <ConstantExpression>().Value == null)
                {
                    var @where = new WhereFragment($"({locator}) IS NULL");
                    _callback(@where);
                    return(base.VisitBinary(expression));
                }
            }

            var parser = _supplementalParsers.OfType <IExpressionParser <BinaryExpression> >()?.FirstOrDefault(x => x.Matches(expression));

            if (parser != null)
            {
                var where = parser.Parse(_mapping, _serializer, expression);
                _callback(where);

                return(expression);
            }

            return(base.VisitBinary(expression));
        }
Esempio n. 2
0
        protected override Expression VisitMember(MemberExpression expression)
        {
            if (expression.Type == typeof(bool))
            {
                var locator = _mapping.JsonLocator(expression);
                var @where  = new WhereFragment($"{locator} = False");
                _callback(@where);
            }

            return(base.VisitMember(expression));
        }
Esempio n. 3
0
        protected override Expression VisitMember(MemberExpression expression)
        {
            if (expression.Type == typeof (bool))
            {
                var locator = _mapping.JsonLocator(expression);
                var @where = new WhereFragment($"{locator} = False");
                _callback(@where);
            }

            return base.VisitMember(expression);
        }
Esempio n. 4
0
            protected override Expression VisitMember(MemberExpression expression)
            {
                if (expression.Type == typeof(bool))
                {
                    var locator = _mapping.JsonLocator(expression);
                    var where = new WhereFragment("{0} = True".ToFormat(locator), true);
                    _register.Peek()(where);
                    return(null);
                }

                return(base.VisitMember(expression));
            }
Esempio n. 5
0
        protected override Expression VisitBinary(BinaryExpression expression)
        {
            if (expression.Type == typeof(bool) && expression.NodeType == ExpressionType.NotEqual)
            {
                var binaryExpression = expression.As <BinaryExpression>();
                var locator          = _mapping.JsonLocator(binaryExpression.Left);
                if (binaryExpression.Right.NodeType == ExpressionType.Constant &&
                    binaryExpression.Right.As <ConstantExpression>().Value == null)
                {
                    var @where = new WhereFragment($"({locator}) IS NULL");
                    _callback(@where);
                }
            }

            return(base.VisitBinary(expression));
        }
Esempio n. 6
0
        protected override Expression VisitBinary(BinaryExpression expression)
        {
            if (expression.Type == typeof (bool) && expression.NodeType == ExpressionType.NotEqual)
            {
                var binaryExpression = expression.As<BinaryExpression>();
                var locator = _mapping.JsonLocator(binaryExpression.Left);
                if (binaryExpression.Right.NodeType == ExpressionType.Constant &&
                    binaryExpression.Right.As<ConstantExpression>().Value == null)
                {
                    var @where = new WhereFragment($"({locator}) IS NULL");
                    _callback(@where);
                }
            }

            return base.VisitBinary(expression);
        }
Esempio n. 7
0
            protected override Expression VisitMember(MemberExpression expression)
            {
                if (expression.Type == typeof(bool))
                {
                    var locator = _mapping.JsonLocator(expression);
                    var where = new WhereFragment("{0} = True".ToFormat(locator), true);
                    _register.Peek()(where);
                    return null;
                }

                return base.VisitMember(expression);
            }