Ejemplo n.º 1
0
        public virtual IBankPaymentGateway CreatePaymentGateway(PaymentMethod method, IProduct product)
        {
            IBankPaymentGateway gateway = null;

            switch (method)
            {
            case PaymentMethod.Bank_One:
                gateway = new BankOne();
                break;

            case PaymentMethod.Bank_Two:
                gateway = new BankTwo();
                break;

            case PaymentMethod.Best_For_Me:
                if (product.Price < 50)
                {
                    gateway = new BankTwo();
                }
                else
                {
                    gateway = new BankOne();
                }
                break;

            default:
                gateway = new BankOne();
                break;
            }
            return(gateway);
        }
Ejemplo n.º 2
0
        public void MakePayment(PaymentMethod method, IProduct product)
        {
            IPaymentGatewayFactory factory = new PaymentGatewayFactory2();

            gateway = factory.CreatePaymentGateway(method, product);
            gateway.MakePayment(product);
        }
Ejemplo n.º 3
0
        public override sealed IBankPaymentGateway CreatePaymentGateway(PaymentMethod method, IProduct product)
        {
            IBankPaymentGateway gateway = null;

            switch (method)
            {
            case PaymentMethod.Pay_Pal:
                gateway = new PayPal();
                break;

            case PaymentMethod.Bill_Desk:
                gateway = new BillDesk();
                break;

            default:
                gateway = base.CreatePaymentGateway(method, product);
                break;
            }
            return(gateway);
        }