示例#1
0
        static void Main(string[] args)
        {
            List <string> accntNumbers = new List <string> {
                "CITI-456",
                "NATIONAL-987",
                "CHASE-222"
            };

            for (int i = 0; i < accntNumbers.Count; i++)
            {
                ICreditUnionFactory anAbstractFactory = CreditUnionFactoryProvider.
                                                        GetCreditUnionFactory(accntNumbers[i]);

                if (anAbstractFactory == null)
                {
                    Console.WriteLine("Sorry, This credit union w/ account number "
                                      + $"{accntNumbers[i]} is invalid.");
                }

                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
        }
        static void Main(string[] args)
        {
            List <string> accountNumbers = new List <string>()
            {
                "CITI-456",
                "NATIONAL-987",
                "CHASE-222"
            };

            for (int i = 0; i < accountNumbers.Count; i++)
            {
                ICreditUnionFactory creditUnionFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(accountNumbers[i]);

                if (creditUnionFactory == null)
                {
                    Console.WriteLine("Sorry. This credit union w/ account number {0} is invalid", accountNumbers[i]);
                }

                else
                {
                    ILoanAccount   loanAccount   = creditUnionFactory.GetLoanAccount();
                    ISavingAccount savingAccount = creditUnionFactory.GetSavingAccount();
                }
            }

            Console.ReadLine();
        }
示例#3
0
        public static void Main()
        {
            List <string> accntNumbers = new List <string> {
                "CITI-456",
                "NATIONAL-987",
                "CHASE-222"
            };

            for (int i = 0; i < accntNumbers.Count; i++)
            {
                ICreditUnionFactory anAbstractFactory =
                    CreditUnionFactoryProvider.
                    GetCreditUnionFactory(accntNumbers[i]);
                if (anAbstractFactory == null)
                {
                    var accNumber = accntNumbers[i];
                    Console.WriteLine($"Sorry. The account number {accNumber} is invalid.");
                }
                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            List <string> accntNumbers = new List <string> {
                "Sehir-456",
                "Ulusal-987",
                "CHASE-222"
            };

            for (int i = 0; i < accntNumbers.Count; i++)
            {
                ICreditUnionFactory anAbstractFactory =
                    CreditUnionFactoryProvider.
                    GetCreditUnionFactory(accntNumbers[i]);
                if (anAbstractFactory == null)
                {
                    Console.WriteLine("Sorry. This credit union w/ account number" +
                                      " ' {0} ' is invalid.", (accntNumbers[i]));
                }
                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
            Console.ReadLine();
        }
示例#5
0
        static void Main(string[] args)
        {
            List <string> accountNumbers = new List <string>()
            {
                "NATIONAL-567",
                "CITI-302",
                "CHASE-43"
            };

            for (int i = 0; i < accountNumbers.Count; i++)
            {
                ICreditUnionFactory anAbstractFactory =
                    CreditUnionFactoryProvider.GetCreditUnionFactory(accountNumbers[i]);
                if (anAbstractFactory == null)
                {
                    Console.WriteLine($"Sorry this credit union account number {accountNumbers[i]} is invalid");
                }
                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            //create some account numbers
            //pass it to the factory to determine which bank will be used
            //and then it creates a loan and a savings for each bank.
            //returns the error message for Chase.
            List <string> accntNumbers = new List <string> {
                "CITI-456",
                "NATIONAL-987",
                "CHASE-222"
            };

            for (int i = 0; i < accntNumbers.Count; i++)
            {
                ICreditUnionFactory anAbstractFactory =
                    CreditUnionFactoryProvider.
                    GetCreditUnionFactory(accntNumbers[i]);
                if (anAbstractFactory == null)
                {
                    Console.WriteLine("Sorry. This credit union w/ account number" +
                                      " ' {0} ' is invalid.", (accntNumbers[i]));
                }
                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
            Console.ReadLine();
        }
示例#7
0
        static void Main(string[] args)
        {
            List <string> accntNumber = new List <string>
            {
                "CITI-456",
                "NATIONAL-987",
                "CHASE-222",
            };

            for (int i = 0; i < accntNumber.Count; i++)
            {
                ICreditUnionFactory anAbstractFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(accntNumber[i]);
                if (anAbstractFactory == null)
                {
                    Console.WriteLine("This credit union with account number" +
                                      " ' {0} ' is invalid ", (accntNumber[i]));
                }
                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
            Console.ReadLine();
        }
示例#8
0
        /// <summary>
        /// Button 'Charge Fee' click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnChargeFee_Click(object sender, EventArgs e)
        {
            ITransactionProcessor transactionProccesor = TransactionProcessor.GetTransactionProcessor();

            CurrencyAmount currencyAmount = new CurrencyAmount();

            currencyAmount.Amount   = Convert.ToInt32(txtTransactionAmoun.Text);
            currencyAmount.Currency = txtTransactionCurrency.Text;

            IDepositAccount depositAccount = createDepositAccount();
            ILoanAccount    loanAccount    = createLoanAccount();

            List <IAccount> accounts = new List <IAccount>();

            accounts.Add(depositAccount);
            accounts.Add(loanAccount);

            TransactionStatus status = ProcessorExtensions.ChargeProcessingFee(transactionProccesor, currencyAmount, accounts);

            if (status.Equals(TransactionStatus.Completed))
            {
                lblTransactionStatus.Text = "Transaction Completed";
            }
            else
            {
                lblTransactionStatus.Text = "Transaction Failed";
            }


            DisplayLastTransactionDetails();
        }
示例#9
0
        /// <summary>
        /// Method for creating accounts
        /// </summary>
        /// <param name="accountTypesToCreate">account type</param>
        /// <param name="transactionAccount">transaction account</param>
        /// <returns>dictionary of created accounts</returns>
        private Dictionary <CreateAccountType, IAccount> CreateAccounts(CreateAccountType accountTypesToCreate, ITransactionAccount transactionAccount)
        {
            Dictionary <CreateAccountType, IAccount> accounts = new Dictionary <CreateAccountType, IAccount>();


            if ((accountTypesToCreate & CreateAccountType.TransactionAccount) == CreateAccountType.TransactionAccount)
            {
                ITransactionAccount transactionAccountLocal = createTransactionAccount();
                accounts.Add(CreateAccountType.TransactionAccount, transactionAccount);
            }

            if ((accountTypesToCreate & CreateAccountType.DepositAccount) == CreateAccountType.DepositAccount)
            {
                IDepositAccount depositAccount = createDepositAccount();
                accounts.Add(CreateAccountType.DepositAccount, depositAccount);
            }

            if ((accountTypesToCreate & CreateAccountType.LoanAccount) == CreateAccountType.LoanAccount)
            {
                ILoanAccount loanAccount = createLoanAccount();
                accounts.Add(CreateAccountType.LoanAccount, loanAccount);
            }


            return(accounts);
        }
示例#10
0
        public void NationalLoanAccount_InterestRate_Returns10()
        {
            ICreditUnionFactory abstractFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(AccountType.National);

            ILoanAccount loanAccount = abstractFactory.CreateLoanAccount();

            Assert.Equal(10, loanAccount.InterestRate);
        }
示例#11
0
        public void CitiLoanAccount_InterestRate_Returns7()
        {
            ICreditUnionFactory abstractFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(AccountType.Citi);

            ILoanAccount loanAccount = abstractFactory.CreateLoanAccount();

            Assert.Equal(7, loanAccount.InterestRate);
        }
示例#12
0
        public void CheckAllAccounts_ReturnsCorrectBalanceAndInterestRate(AccountType accountType, int balance, int interestRate)
        {
            ICreditUnionFactory abstractFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(accountType);

            ISavingsAccount savingsAccount = abstractFactory.CreateSavingsAccount();
            ILoanAccount    loanAccount    = abstractFactory.CreateLoanAccount();

            Assert.Equal(balance, savingsAccount.Balance);
            Assert.Equal(interestRate, loanAccount.InterestRate);
        }
示例#13
0
        /// <summary>
        /// Button 'Make Transaction' click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnMakeTransaction_Click(object sender, EventArgs e)
        {
            ITransactionAccount transactionAccount = createTransactionAccount();
            //IDepositAccount depositAccount = createDepositAccount();
            ILoanAccount loanAccount = createLoanAccount();

            ITransactionProcessor transactionProccesor = TransactionProcessor.GetTransactionProcessor();

            CurrencyAmount currencyAmount = new CurrencyAmount();

            currencyAmount.Amount   = Convert.ToInt32(txtTransactionAmoun.Text);
            currencyAmount.Currency = txtTransactionCurrency.Text;

            //ovde dodavam event handler-i za event-ite
            transactionAccount.OnBalanceChanged += new BalanceChanged(OnBalanceChangeEventHandler);
            loanAccount.OnBalanceChanged        += new BalanceChanged(OnBalanceChangeEventHandler);

            bool              errorOccurred = false;
            string            errorMsg      = "";
            TransactionStatus status        = TransactionStatus.Failed;

            try
            {
                status = transactionProccesor.ProcessTransaction(TransactionType.Credit, currencyAmount, transactionAccount, loanAccount);
            }
            catch (ApplicationException ae)
            {
                errorOccurred = true;
                errorMsg      = ae.Message;
            }
            finally
            {
                if (errorOccurred)
                {
                    MessageBox.Show(errorMsg);
                }
            }


            if (status.Equals(TransactionStatus.Completed))
            {
                lblTransactionStatus.Text = "Transaction Completed";
            }
            else
            {
                lblTransactionStatus.Text = "Transaction Failed";
            }

            //populateDepositAccount(depositAccount);
            //populateLoanAccount(loanAccount);
            //populateTransactionAccount(transactionAccount);
            //lblNumberTransactions.Text ="Number of transactions: " + transactionProccesor.TransactionCount;
            DisplayLastTransactionDetails();
        }
示例#14
0
        /// <summary>
        /// Populate loan account details
        /// </summary>
        /// <param name="account"></param>
        private void populateLoanAccount(ILoanAccount account)
        {
            LoanAccount tmp = account as LoanAccount;

            lbl_LoanId.Text           = tmp.Id.ToString();
            lbl_LoanNumber.Text       = tmp.Number;
            lbl_LoanCurrency.Text     = tmp.Currency;
            lbl_LoanBalance.Text      = tmp.LoanBalance.Amount.ToString() + " " + tmp.LoanBalance.Currency.ToString();
            lbl_LoanTimePeriod.Text   = tmp.Period.Period + " " + tmp.Period.Unit;
            lbl_LoanInterestRate.Text = tmp.Interest.Percent + " % " + tmp.Interest.Unit;
            lbl_LoanStartDate.Text    = tmp.StartDate.ToString();
            lbl_LoanEndDate.Text      = tmp.EndDate.ToString();
        }
示例#15
0
        static void Main(string[] args)
        {
            IList <string> acctNumbers = new List <string>
            {
                "CITI-123",
                "NATIONAL-234"
            };

            foreach (var acctNo in acctNumbers)
            {
                ICreditUnionFactory creditUnionFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(acctNo);
                ISavingsAccount     savingsAccount     = creditUnionFactory.CreateSavingsAccount();
                ILoanAccount        loanAccount        = creditUnionFactory.CreateLoanAccount();
                Console.WriteLine($"your loan account is successfully created with AcctNO:{loanAccount.AcctNo} \n"
                                  + $"your savings account is successfully created with AcctNO:{savingsAccount.AcctNo} \n");
            }
            Console.ReadLine();
        }
示例#16
0
        static void Main(string[] args)
        {
            var arrayOfAccounts = new string[] { "Citi-001", "National-100", "No-002" };

            foreach (var acc in arrayOfAccounts)
            {
                ICreditUnionFactory anAbstractFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(acc.ToString());
                if (anAbstractFactory == null)
                {
                    Console.WriteLine("Sorry, account number entered is not accurate");
                }
                else
                {
                    ILoanAccount   loanAccount   = anAbstractFactory.CreateLoanAccount();
                    ISavingAccount savingAccount = anAbstractFactory.CreateSavingAccount();
                }
            }
            Console.ReadLine();
        }
示例#17
0
        static void Main(string[] args)
        {
            List <string> accntNumbers = new List <string> {
                "CITI-456", "NATIONAL-987", "CHASE-222"
            };

            foreach (var account in accntNumbers)
            {
                ICreditUnionFactory anAbstractFactory = CreditUnionFactoryProvider.GetCreditUnionFactory(account);
                if (anAbstractFactory == null)
                {
                    Console.WriteLine("Sorry. This credit union w/ account number" + " ' {0} ' is invalid.", (account));
                }
                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
            Console.ReadLine();
        }
示例#18
0
        static void Main(string[] args)
        {
            List <string> accntNumbers = new List <string>
            {
                "CITI-123", "NATIONAL-456", "CHASE-789"
            };

            for (int i = 0; i < accntNumbers.Count; i++)
            {
                ICreditUnionFactory anAbstractFactory = CreditUnionFactory.GetCreditUnionFactory(accntNumbers[i]);
                if (anAbstractFactory == null)
                {
                    Console.WriteLine($"Sorry, This credit union account number '{accntNumbers[i]}' is invalid");
                }
                else
                {
                    ILoanAccount    loan    = anAbstractFactory.CreateLoanAccount();
                    ISavingsAccount savings = anAbstractFactory.CreateSavingsAccount();
                }
            }
            Console.ReadLine();
        }