public IRuleResult Execute(IRuleParameters parameters) { var customer = parameters as Customer; if ((DateTime.Today - customer.CustomerSince).Days / 365 > 10) { return(new Discount(0.20)); } return(new Discount()); }
public IRuleResult Execute(IRuleParameters parameters) { var customer = parameters as Customer; if ((DateTime.Today.Day == customer.Birthday.Day) && (DateTime.Today.Month == customer.Birthday.Month)) { return(new Discount(.15)); } return(new Discount()); }
public IRuleResult Execute(IRuleParameters parameters) { var customer = parameters as Customer; if ((DateTime.Today.Day - customer.CustomerSince.Day) < 30) { return(new Discount(.08)); } return(new Discount()); }
public IRuleResult Execute(IRuleParameters parameters) { var billInfo = parameters as BillInfo; if (billInfo.Units <= 100) { billInfo.Bill = billInfo.Units * 1.35M; } return(billInfo as IRuleResult); }
public IRuleResult Execute(IRuleParameters parameters) { var billInfo = parameters as BillInfo; if (billInfo.Units <= 500) { billInfo.Bill = (100 * 1.35M) + (200 * 4.05M) + ((billInfo.Units - 300) * 6.75M); billInfo.RunNext = false; } ; return(billInfo as IRuleResult); }
public List <IRuleResult> Execute(IRuleParameters input, List <IRule> rules) { var results = new List <IRuleResult>(); rules.ForEach(rule => { var result = rule.Execute(input); results.Add(result); }); return(results); }
public IRuleResult Execute(IRuleParameters parameters) { throw new NotImplementedException(); }
public BackPropagationRule(IRuleParameters defaultParameters) { Contract.Requires(defaultParameters != null); DefaultParameters = defaultParameters; }