public override Expression <Func <T, bool> > ToExpression() { var spec = _specification.ToExpression(); var parameter = Expression.Parameter(typeof(T)); var body = Expression.Not(spec.Body); body = (UnaryExpression) new ParameterReplacer(parameter).Visit(body); return(Expression.Lambda <Func <T, bool> >( body ?? throw new InvalidOperationException("Null expression body"), parameter)); }
public override Expression <Func <T, bool> > ToExpression() { var leftExpression = _leftSpecification.ToExpression(); var rightExpression = _rightSpecification.ToExpression(); var parameter = Expression.Parameter(typeof(T)); var body = Expression.AndAlso(leftExpression.Body, rightExpression.Body); body = (BinaryExpression) new ParameterReplacer(parameter).Visit(body); return(Expression.Lambda <Func <T, bool> >( body ?? throw new InvalidOperationException("Null expression body"), parameter)); }
public IScenario <IPosition> Build() { return(new LiquidationScenario(_scenarioId, string.Empty, 10.0, _specification.ToExpression())); }