예제 #1
0
 public override void Pay()
 {
     PaymentMedium.StartTransaction("American Express");
     Console.WriteLine($"AmericanExpress Payment Method Invoked via {PaymentMedium.GetType().Name}");
 }
예제 #2
0
 public override void Pay()
 {
     PaymentMedium.StartTransaction("Master");
     Console.WriteLine($"Master Payment Method via {PaymentMedium.GetType().Name}");
 }
예제 #3
0
        public static string GetPaymentChannel(
            PaymentOrganization bank,
            PaymentMedium medium
            )
        {
            switch (bank)
            {
            case PaymentOrganization.ABBank:
            {
                switch (medium)
                {
                case PaymentMedium.InternetBanking: return("abbank");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.BankAsia:
            {
                switch (medium)
                {
                case PaymentMedium.InternetBanking: return("abbank");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.BRAC:
            {
                switch (medium)
                {
                case PaymentMedium.VISA: return("brac_visa");

                case PaymentMedium.MasterCard: return("brac_master");

                case PaymentMedium.MobileBanking: return("bkash");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.CITY:
            {
                switch (medium)
                {
                case PaymentMedium.AMEX: return("city_visa");

                case PaymentMedium.MasterCard: return("city_master");

                case PaymentMedium.VISA: return("city_visa");

                case PaymentMedium.InternetBanking: return("city");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.DBBL:
            {
                switch (medium)
                {
                case PaymentMedium.VISA: return("dbbl_visa");

                case PaymentMedium.MasterCard: return("dbbl_master");

                case PaymentMedium.Nexus: return("dbbl_nexus");

                case PaymentMedium.MobileBanking: return("dbblmobilebanking");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.EBL:
            {
                switch (medium)
                {
                case PaymentMedium.VISA: return("ebl_visa");

                case PaymentMedium.MasterCard
                    :
                    return("ebl_master");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.IBBL:
            {
                switch (medium)
                {
                case PaymentMedium.InternetBanking: return("ibbl");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.MTBL:
            {
                switch (medium)
                {
                case PaymentMedium.InternetBanking: return("mtbl");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.QCash:
            {
                switch (medium)
                {
                case PaymentMedium.OtherCards: return("qcash");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            case PaymentOrganization.SBL:
            {
                switch (medium)
                {
                case PaymentMedium.VISA: return("sbl_visa");

                case PaymentMedium.MasterCard: return("sbl_master");

                default: throw new InvalidOperationException("Payment Medium not supported");
                }
            }

            default: throw new InvalidOperationException("Payment Medium not supported");
            }
            ;
        }