Exemple #1
0
 public void TestBookCommission()
 {
     payment    = PaymentFactory.GetPayment(PaymentTypeEnum.Book);
     commission = payment as ICommission;
     returnMsg  = commission.GenerateCommission();
     Assert.AreEqual(returnMsg, "Book Commission");
 }
Exemple #2
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;
            }
        }
        public PaymentResult MakePayment(Product pProduct)
        {
            PaymentResult paymentResult = new PaymentResult();

            paymentResult.ProductPackingSlip = _packingSlip.GeneratePackingSlip(pProduct);
            paymentResult.AgentCommission    = _commissionPayment.GenerateCommission(pProduct);
            return(paymentResult);
        }
Exemple #4
0
        public bool ProcessOrder(string productType)
        {
            // Create Duplicate Packing Slip
            bool res1 = _packingSlip.GenerateDuplicatePackingSlip();

            // Generate Commission For Agent
            bool res2 = _commision.GenerateCommission();

            return(res1 && res2);
        }