Пример #1
0
        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;
            }
        }
Пример #2
0
        public void ProcessOrder()
        {
            var handler = new OrderProcessorFactory(this).GetOrderHandler();

            handler.ProcessOrder();
        }