Example #1
0
        public ExpressionSpecification <T> And(ExpressionSpecification <T> right)
        {
            object obj = this;

            if (((ExpressionSpecification <T>)obj ? true : false))
            {
                obj = (ExpressionSpecification <T>)obj & right;
            }
            return((ExpressionSpecification <T>)obj);
        }
Example #2
0
        public ExpressionSpecification <T> Or(ExpressionSpecification <T> right)
        {
            object obj = this;

            if (!(ExpressionSpecification <T>)obj)
            {
                obj = (ExpressionSpecification <T>)obj | right;
            }
            return((ExpressionSpecification <T>)obj);
        }
Example #3
0
        public static ExpressionSpecification <T> operator !(ExpressionSpecification <T> spec)
        {
            UnaryExpression unaryExpression = System.Linq.Expressions.Expression.MakeUnary(ExpressionType.Not, spec.Expression.Body, typeof(bool));

            return(new ExpressionSpecification <T>(ExpressionSpecification <T> .toLambda(unaryExpression, spec.Expression.Parameters)));
        }
Example #4
0
        public static ExpressionSpecification <T> operator |(ExpressionSpecification <T> leftSide, ExpressionSpecification <T> rightSide)
        {
            BinaryExpression binaryExpression = ExpressionSpecification <T> .mergeIntoBinary(rightSide.Expression, leftSide.Expression, ExpressionType.OrElse);

            return(new ExpressionSpecification <T>(ExpressionSpecification <T> .toLambda(binaryExpression, leftSide.Expression.Parameters)));
        }