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); }
public ExpressionSpecification <T> Or(ExpressionSpecification <T> right) { object obj = this; if (!(ExpressionSpecification <T>)obj) { obj = (ExpressionSpecification <T>)obj | right; } return((ExpressionSpecification <T>)obj); }
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))); }
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))); }