Exemplo n.º 1
0
        public NotSpecification(IClause <TEntity> originalSpecification)
        {
            if (originalSpecification == null)
            {
                throw new ArgumentNullException(nameof(originalSpecification));
            }

            _originalCriteria = originalSpecification.SatisfiedBy();
        }
Exemplo n.º 2
0
        public override Expression <Func <TEntity, bool> > SatisfiedBy()
        {
            var leftExpression  = _left.SatisfiedBy();
            var rightExpression = _right.SatisfiedBy();

            var parameter = Expression.Parameter(typeof(TEntity));

            var leftVisitor = new ReplaceExpressionVisitor(leftExpression.Parameters[0], parameter);
            var left        = leftVisitor.Visit(leftExpression.Body);

            var rightVisitor = new ReplaceExpressionVisitor(rightExpression.Parameters[0], parameter);
            var right        = rightVisitor.Visit(rightExpression.Body);

            return(Expression.Lambda <Func <TEntity, bool> >(
                       Expression.AndAlso(left, right), parameter));
        }