예제 #1
0
        // Dokonywanie wypłaty
        // Wywołanie metody CreatePaymentGateway(...) zwraca nam obiekt utworzony
        // w zależności od wyboru rodzaju wypłaty przez klienta
        public void MakePayment(EPaymentMethod method, Operacja product)
        {
            PaymentGatewayFactory factory = new PaymentGatewayFactory();

            this.gateway = factory.CreatePaymentGateway(method, product);
            this.gateway.MakePayment(product);
        }
예제 #2
0
        public void MakePayment(Operacja product)
        {
            double prowizja = (float)product.Wyplata / 100;

            // Metoda to pozwala na dokonanie wypłaty za pomocą pierwszego sposobu
            Console.WriteLine("Pierwszy rodzaj wypłaty kwota {0}, prowizja {1}", product.Wyplata, prowizja);
        }
예제 #3
0
        public void MakePayment(Operacja product)
        {
            float prowizja = (float)product.Wyplata / 20;

            // Metoda to pozwala na dokonanie wypłaty za pomocą drugiego sposobu
            Console.WriteLine("Drugi rodzaj wypłaty kwota {0}, prowizja {1}", product.Wyplata, prowizja);
        }
예제 #4
0
        static void Main(string[] args)
        {
            // Tworzenie instancji klasy w której znajduje się metoda do dokonania wypłaty
            PaymentProcessor pre = new PaymentProcessor();
            // Definiujemy operacje
            Operacja operacja = new Operacja();

            //operacja wypłaty 1
            operacja.Wyplata = 5000;
            // Dokonujemy wypłaty pierwszym sposobem.
            pre.MakePayment(EPaymentMethod.EURONET, operacja);
            Console.ReadKey();
            //operacja wypłaty 2
            operacja.Wyplata = 4000;
            pre.MakePayment(EPaymentMethod.OTHER, operacja);
            Console.ReadKey();
        }
예제 #5
0
        public virtual IPaymentGateway CreatePaymentGateway(EPaymentMethod method, Operacja prod)
        {
            IPaymentGateway gateway = null;

            switch (method)
            {
            case EPaymentMethod.EURONET:
                gateway = new OperatorOne();
                break;

            case EPaymentMethod.OTHER:
                gateway = new OperatorTwo();
                break;

            default:
                break;
            }
            return(gateway);
        }