public PaymentOrchestrator(IPaymentRepository paymentRepository, IBankFactory bankFactory, ISensitiveDataObfuscator dataObfuscator, ILogger <PaymentOrchestrator> logger)
 {
     _paymentRepository = paymentRepository;
     _bankFactory       = bankFactory;
     _dataObfuscator    = dataObfuscator;
     _logger            = logger;
 }
        public IBankFactory CreateBankFactory(BanksEnum banksEnum)
        {
            var          factoryName = banksEnum + "BankFactory";
            Type         type        = Assembly.GetExecutingAssembly().GetTypes().FirstOrDefault(t => t.Name == factoryName);
            IBankFactory bankFactory = (IBankFactory)Activator.CreateInstance(type);

            return(bankFactory);
        }
Example #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            IBankFactory bankFactory = null;

            if (radioCathy.Checked)
            {
                bankFactory = new CathayBankFactory();
            }
            else if (radioCtbc.Checked)
            {
                bankFactory = new CtbcBankFactory();
            }
            else if (radioNccc.Checked)
            {
                bankFactory = new NcccBankFactory();
            }
            IBank bank = bankFactory.VerificationCard();

            listBox1.Items.Add(bank.VerificationNum(inputNum.Text));
        }
        /// <summary>
        /// 是否驗證成功
        /// </summary>
        /// <param name="cardData">信用卡資料</param>
        /// <returns>Boolean</returns>
        public bool IsVerified(CreditCardViewModel cardData)
        {
            IBankFactory bankFactory = null;

            if (cardData.BankName == "Cathay")
            {
                bankFactory = new CathayBankFactory();
            }
            else if (cardData.BankName == "CTBC")
            {
                bankFactory = new CtbcBankFactory();
            }
            else if (cardData.BankName == "NCCC")
            {
                bankFactory = new NcccFactory();
            }

            IBank bank = bankFactory.VerifyCreditCard();

            return(bank.VerifyCardNumber(cardData.CardNumber));
        }
Example #5
0
 public BankManager(IBankFactory bankFactory, IAccountManager accountManager)
 {
     _bankFactory    = bankFactory ?? throw new ArgumentNullException(nameof(bankFactory));
     _accountManager = accountManager ?? throw new ArgumentNullException(nameof(accountManager));
 }
Example #6
0
        static void Main(string[] args)
        {
            Creator      creator      = new Creator();
            CreditCard   creditCard   = null;
            IBankFactory nationalBank = creator.CreateBankFactory(BanksEnum.National);

            creditCard = nationalBank.BuyCard(CardsEnum.MoneyBack, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");
            creditCard = nationalBank.BuyCard(CardsEnum.Platinum, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");
            creditCard = nationalBank.BuyCard(CardsEnum.Titanium, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");

            IBankFactory kapitalBank = creator.CreateBankFactory(BanksEnum.Kapital);

            creditCard = kapitalBank.BuyCard(CardsEnum.MoneyBack, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");
            creditCard = kapitalBank.BuyCard(CardsEnum.Platinum, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");
            creditCard = kapitalBank.BuyCard(CardsEnum.Titanium, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");

            IBankFactory pashaBank = creator.CreateBankFactory(BanksEnum.Pasha);

            creditCard = pashaBank.BuyCard(CardsEnum.MoneyBack, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");
            creditCard = pashaBank.BuyCard(CardsEnum.Platinum, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);
            Console.WriteLine("--------------------------------\n");
            creditCard = pashaBank.BuyCard(CardsEnum.Titanium, 500, 10000);
            Console.WriteLine(creditCard.BankName);
            Console.WriteLine(creditCard.CardType);
            Console.WriteLine(creditCard.CreditLimit);
            Console.WriteLine(creditCard.AnnualCharge);

            Console.ReadKey();
        }