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); }
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)); }
public BankManager(IBankFactory bankFactory, IAccountManager accountManager) { _bankFactory = bankFactory ?? throw new ArgumentNullException(nameof(bankFactory)); _accountManager = accountManager ?? throw new ArgumentNullException(nameof(accountManager)); }
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(); }