public void RunPostPaymentLogic(Payment payment, IBusinessLogicMapper mapper) { foreach (IPaymentRule rule in _provider.GetAllRules()) { if (rule.IsValid(payment)) { foreach (IPostPaymentProcess process in _processFactory.GetProcesses(rule.GetType(), mapper)) { process.Process(payment); } } } }
public List <IPostPaymentProcess> GetProcesses(Type passingRuleType, IBusinessLogicMapper mapper) { List <IPostPaymentProcess> _returnList = new List <IPostPaymentProcess>(); switch (_typeDict[passingRuleType]) { case 0: //book rule _returnList.Add(new GeneratePackingSlipProcess(mapper)); break; case 1: //learning to ski rule break; case 2: //membership activation rule break; case 3: //membership upgrade rule break; case 4: //physical product or book rule break; case 5: //physical product rule _returnList.Add(new GeneratePackingSlipProcess(mapper)); break; case 6: //video rule break; case 7: //any membership rule break; default: throw new NotImplementedException(); } return(_returnList); }
public GeneratePackingSlipProcess(IBusinessLogicMapper mapper) { _mapper = mapper; }
public EmailOwnerProcess(IBusinessLogicMapper mapper) { _mapper = mapper; }