private static ConditionDeclaration CreateDefaultCondition() { Expression <Func <T, bool> > exp = o => true; ConditionDeclaration condition = Declaration.Condition(exp); return(condition); }
private RuleDeclaration CreatePreferredRule() { Expression <Func <Order, bool> > exp = o => o.Customer.Preferred; ConditionDeclaration condition = Declaration.Condition(exp); ConsequenceDeclaration consequence = Declaration.Consequence(() => Trace.WriteLine("Preferred Customer")); return(Declaration.Rule(new[] { condition }, new[] { consequence })); }
private RuleDeclaration CreateCustomerExistsRule() { Expression <Func <Order, bool> > exp = o => o.Customer != null; ConditionDeclaration condition = Declaration.Condition(exp); ConsequenceDeclaration consequence = Declaration.Consequence(() => Trace.WriteLine("Customer Exists")); return(Declaration.Rule(new[] { condition }, new[] { consequence })); }
private RuleDeclaration CreateOnlineOrderRule() { Expression <Func <Order, bool> > exp = o => o.Source == "Online"; ConditionDeclaration condition = Declaration.Condition(exp); ConsequenceDeclaration consequence = Declaration.Consequence(() => Trace.WriteLine("Online Order")); return(Declaration.Rule(new[] { condition }, new[] { consequence })); }
private RuleDeclaration CreatePreferredRule() { Expression <Func <Order, bool> > exp = o => o.Customer.Preferred; ConditionDeclaration condition = Declaration.Condition(exp); ConsequenceDeclaration consequence = Declaration.Consequence <Order>(x => x.IsPreferred()); return(Declaration.Rule(new[] { condition }, new[] { consequence })); }
private RuleDeclaration CustomerIsSpecified() { Expression <Func <Order, bool> > exp = o => o.Customer != null; ConditionDeclaration condition = Declaration.Condition(exp); ConsequenceDeclaration consequence = Declaration.Consequence <Order>(x => x.HasCustomer()); return(Declaration.Rule(new[] { condition }, new[] { consequence })); }
private RuleDeclaration CreateOnlineOrderRule() { Expression <Func <Order, bool> > exp = o => o.Source == "Online"; ConditionDeclaration condition = Declaration.Condition(exp); ConsequenceDeclaration consequence = Declaration.Consequence <Order>(x => x.IsOnline()); return(Declaration.Rule(new[] { condition }, new[] { consequence })); }
public RuleConfigurator <T> When(Expression <Func <T, bool> > expression) { CompletePendingRules(); ConditionDeclaration condition = Declaration.Condition(expression); _conditions.Add(condition); return(this); }
private void AddUnderLimitRule() { Expression <Func <OrderSubmitted, bool> > exp = o => o.Amount < 50.00m; ConditionDeclaration condition = Declaration.Condition(exp); ConsequenceDeclaration <OrderSubmitted> consequence = Declaration.Consequence <OrderSubmitted>(o => _underLimit(o.Element.Object)); RuleDeclaration rule = Declaration.Rule(new[] { condition }, new[] { consequence }); _engine.Add(rule); }
public RuleConfigurator <T> When <TCondition>() where TCondition : Condition <T>, new() { CompletePendingRules(); ConditionDeclaration condition = Declaration.Condition <T>(x => new TCondition().IsSatisfiedBy(x)); _conditions.Add(condition); return(this); }
private RuleDeclaration CreateActiveNotPreferredRule() { Expression <Func <Order, bool> > exp = o => o.Customer.Preferred == false; ConditionDeclaration condition = Declaration.Condition(exp); Expression <Func <Order, bool> > exp2 = o => o.Customer.Active; ConditionDeclaration condition2 = Declaration.Condition(exp2); ConsequenceDeclaration consequence = Declaration.Consequence(() => Trace.WriteLine("Active, Not Preferred")); return(Declaration.Rule(new[] { condition, condition2 }, new[] { consequence })); }
private RuleDeclaration CreateActiveNotPreferredRule() { Expression <Func <Order, bool> > exp = o => o.Customer.Preferred == false; ConditionDeclaration condition = Declaration.Condition(exp); Expression <Func <Order, bool> > exp2 = o => o.Customer.Active; ConditionDeclaration condition2 = Declaration.Condition(exp2); ConsequenceDeclaration consequence = Declaration.Consequence <Order>(x => x.IsActiveNotPreferred()); return(Declaration.Rule(new[] { condition, condition2 }, new[] { consequence })); }
private RuleDeclaration CreateOnlinePreferredOrderRule() { Expression <Func <Order, bool> > exp = o => o.Source == "Online"; ConditionDeclaration condition = Declaration.Condition(exp); Expression <Func <Order, bool> > exp2 = o => o.Customer.Preferred; ConditionDeclaration condition2 = Declaration.Condition(exp2); ConsequenceDeclaration consequence = Declaration.Consequence <Order>(x => x.IsOnlinePreferred()); return(Declaration.Rule(new[] { condition, condition2 }, new[] { consequence })); }
private void MatchExistingConditionNode <T>(ConditionDeclaration condition, ConditionNode <T> node) { if (condition.MatchType != typeof(T)) { return; } if (node.Expression.ToString() != condition.Expression.ToString()) { return; } AlphaNode <T> alphaNode = node.GetAlphaNode(); }