public bool HandleOrder() { bool isSuccess = false; try { IOrderProcessor orderProcessor = OrderProcessorFactory.CreateOrderProcessor(_productType, _orderProcessorModel); if (orderProcessor != null) { orderProcessor.ProcessOrder(); if (orderProcessor is ICommission) { ICommission commission = (ICommission)orderProcessor; commission.GenerateCommission(); } if (orderProcessor is IEmailSender) { IEmailSender emailSender = (IEmailSender)orderProcessor; emailSender.SendEmail(); } isSuccess = true; } return(isSuccess); } catch (Exception ex) { Console.WriteLine("Some exception occurred"); throw ex; } }
public void ProcessOrder() { var handler = new OrderProcessorFactory(this).GetOrderHandler(); handler.ProcessOrder(); }