示例#1
0
        /// <summary>
        /// Reads the bank from a text file
        /// </summary>
        /// <param name="filepath">The file path to read from</param>
        /// <returns>The bank</returns>
        static Bank GetBankFromFile(string filePath)
        {
            Bank bank = new Bank();

            try
            {
                using (StreamReader sr = new StreamReader(filePath))
                {
                    int numberOfCustomers = int.Parse(sr.ReadLine().Split('|')[1]);

                    for (int i = 0; i < numberOfCustomers; i++)
                    {
                        string[]     line         = sr.ReadLine().Split('|');
                        BankCustomer bankCustomer = new BankCustomer();
                        bankCustomer.Name        = line[1];
                        bankCustomer.Address     = line[2];
                        bankCustomer.PhoneNumber = line[3];
                        int numberOfAccounts = int.Parse(line[4]);
                        for (int j = 0; j < numberOfAccounts; j++)
                        {
                            line = sr.ReadLine().Split('|');
                            if (line[0][0] == 'C')
                            {
                                CheckingAccount checkingAccount = new CheckingAccount();
                                checkingAccount.AccountNumber = line[0];
                                checkingAccount.Deposit(decimal.Parse(line[1]));
                                bankCustomer.AddAccount(checkingAccount);
                            }
                            else
                            {
                                SavingsAccount savingsAccount = new SavingsAccount();
                                savingsAccount.AccountNumber = line[0];
                                savingsAccount.Deposit(decimal.Parse(line[1]));
                                bankCustomer.AddAccount(savingsAccount);
                            }
                        }
                        bank.AddCustomer(bankCustomer);
                    }
                }
            }
            catch (IOException ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(bank);
        }
示例#2
0
        static void Main(string[] args)
        {
            BankAccount checkingAccount   = new CheckingAccount();
            BankAccount savingsAccount    = new SavingsAccount();
            BankAccount secondSavingsAcct = new SavingsAccount();

            BankCustomer jayGatsby = new BankCustomer();

            jayGatsby.AddAccount(checkingAccount);
            jayGatsby.AddAccount(savingsAccount);
            jayGatsby.AddAccount(secondSavingsAcct);

            Console.WriteLine($"Jay Gatsby has {jayGatsby.Accounts.Length} accounts.");

            checkingAccount.AccountNumber   = "Checking";
            savingsAccount.AccountNumber    = "Savings";
            secondSavingsAcct.AccountNumber = "Second Savings";

            foreach (var item in jayGatsby.Accounts)
            {
                Console.WriteLine($"Account Number: {item.AccountNumber}");
            }

            checkingAccount.Deposit(2000M);
            savingsAccount.Deposit(2000M);
            secondSavingsAcct.Deposit(1500M);

            foreach (var item in jayGatsby.Accounts)
            {
                Console.WriteLine($"Account Name: {item.AccountNumber} - Account Balance: {item.Balance.ToString("C")}");
            }

            checkingAccount.Withdraw(500.00M);
            savingsAccount.Withdraw(1000M);

            foreach (var item in jayGatsby.Accounts)
            {
                Console.WriteLine($"Account Name: {item.AccountNumber} - Account Balance: {item.Balance.ToString("C")}");
            }
            Console.WriteLine("IsVIP: " + jayGatsby.IsVIP);


            savingsAccount.Transfer(checkingAccount, 40.00M);
            Console.WriteLine($"Checking: {checkingAccount.Balance}, Savings: {savingsAccount.Balance}");
            Console.ReadKey();
        }
示例#3
0
        static void Main(string[] args)
        {
            Console.WriteLine($"Welcome to the Bank Account Application");

            BankCustomer PopPop = new BankCustomer();

            ///instantiate newAccount1
            BankAccount donorAccount = new BankAccount();

            ///intantiate newAccount2
            BankAccount receiverAccount = new BankAccount();

            ///add money to both accounts using deposit method
            donorAccount.Deposit(100M);
            receiverAccount.Deposit(100M);

            CheckingAccount checkingAccount_GeorgeMichael = new CheckingAccount();

            ///write out amount $$$ in each
            Console.WriteLine($"Balance of donorAccount: ${donorAccount.Balance:C2} | Balance of Receiver Account: ${receiverAccount.Balance}");

            ///transfer $$$ from new Account 1 to new Account 2
            donorAccount.Transfer(receiverAccount, 50M);

            //////write out amount $$$ in each after transfer
            Console.WriteLine($"Balance of donorAccount: {donorAccount.Balance:C2} | ${receiverAccount.Balance}");

            // test out withdraw and overdraft scenarios
            decimal overDrawMoneyTest = checkingAccount_GeorgeMichael.Withdraw(90M);

            //get new balance and print out
            Console.WriteLine($"This the account balance: {checkingAccount_GeorgeMichael.Balance:C2}");

            //Create new savings account
            SavingsAccount brandNewSavingAccountForSomeone = new SavingsAccount();

            //Add $149 to the savings account
            brandNewSavingAccountForSomeone.Deposit(-190);

            //Print new balance
            Console.WriteLine($"Balance for savings account: {brandNewSavingAccountForSomeone.Balance:C2}");

            //Test withdraw for savings account
            brandNewSavingAccountForSomeone.Withdraw(90);
            Console.WriteLine($"Balance for savings account after withdrawing $490: {brandNewSavingAccountForSomeone.Balance:C2}");
        }
示例#4
0
        /// <summary>
        /// Handles the Transfer transaction
        /// </summary>
        /// <param name="userAccount">The User Account to change</param>
        static void MakeTransfer(Bank bank, BankAccount userAccount)
        {
            Console.WriteLine();


            Console.WriteLine("Which account would you like to transfer to?");
            BankCustomer chosenUser    = ChooseUser(bank, false);
            BankAccount  chosenAccount = PickAnAccount(bank, chosenUser, false);

            while (chosenAccount == userAccount)
            {
                Console.WriteLine("You cannot transfer to your own account.");
                System.Threading.Thread.Sleep(1000);
                chosenUser    = ChooseUser(bank, false);
                chosenAccount = PickAnAccount(bank, chosenUser, false);
                Console.Clear();
            }
            Console.Clear();
            Console.WriteLine($"Transfer to {chosenUser.Name}'s Account: {chosenAccount.AccountNumber}");
            Console.Write("How much would you like to transfer?: ");
            decimal ammountToTransfer = GetANumber();

            decimal initialBalance = userAccount.Balance;

            userAccount.Transfer(chosenAccount, ammountToTransfer);
            decimal finalBalance = userAccount.Balance;

            if (initialBalance != finalBalance)
            {
                Console.WriteLine("Transfer Successful!");
                if (initialBalance - ammountToTransfer != finalBalance)
                {
                    Console.WriteLine("Fee Assesed.");
                    Console.Beep(800, 100);
                    Console.Beep(500, 500);
                }
            }
            else
            {
                Console.WriteLine("Transfer Failed!");
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
            Console.Clear();
        }
示例#5
0
        /// <summary>
        /// Allows User to update their personal information
        /// </summary>
        /// <param name="customer">The current user</param>
        static void ChangeUserInfo(BankCustomer customer)
        {
            string[] validChoices = { "1", "2", "3", "Q" };
            string   input        = "";

            while (input != "Q")
            {
                do
                {
                    if (customer.IsVIP)
                    {
                        Console.WriteLine("********VIP********");
                    }
                    Console.WriteLine("      TE Bank");
                    Console.WriteLine("-------------------");
                    Console.WriteLine("       MENU");
                    Console.WriteLine($"1. Change Name. Current Name: {customer.Name}");
                    Console.WriteLine($"2. Change Address. Current Address: {customer.Address}");
                    Console.WriteLine($"3. Change Phone Number. Current: {customer.PhoneNumber}");
                    Console.WriteLine("Q. Quit to Main Menu");
                    Console.WriteLine();
                    Console.Write("Make a choice: ");
                    input = Console.ReadLine().ToUpper();
                    Console.Clear();
                }while (!validChoices.Contains(input));

                switch (input)
                {
                case "1":                         // Change Name
                    Console.Write("Please enter your Name: ");
                    customer.Name = Console.ReadLine();
                    break;

                case "2":                         // Change Address
                    Console.Write("Please enter your Address: ");
                    customer.Address = Console.ReadLine();
                    break;

                case "3":                         // Change Phone Number
                    Console.Write("Please enter your Phone Number: ");
                    customer.PhoneNumber = Console.ReadLine();
                    break;
                }
            }
        }
        static void Main(string[] args)
        {
            // Testing part one math in the various account rules. Result should be -60, 150.

            BankAccount checkingAccount = new CheckingAccount();
            BankAccount savingsAccount  = new SavingsAccount();

            decimal amountToDeposit = 100.00M;
            decimal newBalance      = checkingAccount.Deposit(amountToDeposit);

            decimal amountToTransfer = 50.00M;

            checkingAccount.Transfer(savingsAccount, amountToTransfer);

            amountToTransfer = 100.00M;
            checkingAccount.Transfer(savingsAccount, amountToTransfer);

            amountToTransfer = 100.00M;
            checkingAccount.Transfer(savingsAccount, amountToTransfer);


            //Testing part two results.

            Console.WriteLine(checkingAccount.Balance);
            Console.WriteLine(savingsAccount.Balance);

            checkingAccount = new CheckingAccount();
            savingsAccount  = new SavingsAccount();

            BankCustomer jayGatsby = new BankCustomer();

            jayGatsby.AddAccount(checkingAccount);
            jayGatsby.AddAccount(savingsAccount);

            amountToDeposit = 50000.00M;
            newBalance      = checkingAccount.Deposit(amountToDeposit);
            Console.WriteLine(checkingAccount.Balance);



            Console.WriteLine($"Jay Gatsby has {jayGatsby.Accounts.Length} accounts.");

            Console.WriteLine(jayGatsby.IsVIP);
        }
        static void Main(string[] args)
        {
            BankCustomer    testCust  = new BankCustomer();
            BankAccount     test      = new BankAccount();
            CheckingAccount testCheck = new CheckingAccount();
            SavingsAccount  testSave  = new SavingsAccount();

            testCust.AddAccount(test);
            testCust.AddAccount(testCheck);
            testCust.AddAccount(testSave);

            testCheck.Deposit(24000);
            testSave.Deposit(1000);

            Console.WriteLine(testCust.Name + "VIP Status: " + testCust.IsVIP);

            Console.WriteLine("Total Account Balance: " + testCust.sum.ToString("c"));

            Console.ReadKey();
        }
示例#8
0
        /// <summary>
        /// Chooses a user
        /// </summary>
        /// <param name="bank">The Bank</param>
        /// <returns>A user</returns>
        static BankCustomer ChooseUser(Bank bank, bool allowAdd)
        {
            HashSet <string> validChoices = new HashSet <string>();
            string           input        = "";

            do
            {
                Console.Clear();
                Console.WriteLine("Bank Customers");
                for (int i = 1; i <= bank.Customers.Length; i++)
                {
                    validChoices.Add(i.ToString());
                    Console.WriteLine($"{i}. User: {bank.Customers[i - 1].Name}");
                }
                if (allowAdd)
                {
                    Console.WriteLine($"{bank.Customers.Length + 1}. Add a user");
                }
                Console.Write("Pick an option: ");
                input = Console.ReadLine().ToUpper();
                Console.Clear();
                if (allowAdd && input == (bank.Customers.Length + 1).ToString())
                {
                    Console.WriteLine("Adding a User:"******"Please enter your Name: ");
                    newCustomer.Name = Console.ReadLine();
                    Console.Write("Please enter your Address: ");
                    newCustomer.Address = Console.ReadLine();
                    Console.Write("Please enter your Phone Number: ");
                    newCustomer.PhoneNumber = Console.ReadLine();
                    bank.AddCustomer(newCustomer);
                }
            }while (!validChoices.Contains(input));

            int choice = int.Parse(input);

            return(bank.Customers[choice - 1]);
        }
示例#9
0
        static void Main(string[] args)
        {
            BankAccount checkingAccount = new CheckingAccount();

            checkingAccount.Deposit(1000M);
            BankAccount savingsAccount = new SavingsAccount();

            savingsAccount.Deposit(500M);

            Console.WriteLine(checkingAccount.AccountNumber);
            Console.WriteLine(savingsAccount.AccountNumber);

            BankCustomer jayGatsby = new BankCustomer();

            jayGatsby.AddAccount(checkingAccount);
            jayGatsby.AddAccount(savingsAccount);

            bool customerBanking = true;

            while (customerBanking)
            {
                string action = BankAccount.ATM();

                if (action.Equals("b"))
                {
                    BankAccount.OutputBalances(jayGatsby.ListOfAccounts);
                    continue;
                }

                string  accountInput = BankAccount.ChooseAccount(jayGatsby.ListOfAccounts);
                decimal money        = BankAccount.AmountOfMoney();

                if (action.Equals("d"))
                {
                    foreach (BankAccount account in jayGatsby.ListOfAccounts)
                    {
                        if (account.AccountNumber == accountInput)
                        {
                            account.Deposit(money);
                        }
                    }
                }
                else if (action.Equals("w"))
                {
                    foreach (BankAccount account in jayGatsby.ListOfAccounts)
                    {
                        if (account.AccountNumber == accountInput)
                        {
                            account.Withdraw(money);
                        }
                    }
                }
                else if (action.Equals("t"))
                {
                    string accountTransfer = BankAccount.ChooseAccount(jayGatsby.ListOfAccounts);

                    foreach (BankAccount account in jayGatsby.ListOfAccounts)
                    {
                        if (account.AccountNumber == accountInput)
                        {
                            account.Withdraw(money);
                        }

                        if (account.AccountNumber == accountTransfer)
                        {
                            account.Deposit(money);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Exiting . . . ");
                    customerBanking = false;
                }
            }



            Console.ReadKey();
        }
示例#10
0
        static void Main(string[] args)
        {
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("     $$$$$$$      $$$$$$$$$$$        $$$$$$$$$    $$$      $$$   $$$$$$$$$$$   $$$$$$$$$      ");
            Console.WriteLine("     $$$  $$$         $$$         $$$$$$$$$$$     $$$      $$$       $$$       $$$$$$$$     ");
            Console.WriteLine("     $$$  $$$         $$$       $$$$              $$$      $$$       $$$       $$$ ");
            Console.WriteLine("     $$$  $$          $$$       $$$$              $$$$$$$$$$$$       $$$       $$$$$$     ");
            Console.WriteLine("     $$$$$$           $$$       $$$$              $$$$$$$$$$$$       $$$       $$$$$$    ");
            Console.WriteLine("     $$$ $$$          $$$       $$$$              $$$      $$$       $$$       $$$       ");
            Console.WriteLine("     $$$  $$$         $$$       $$$$              $$$      $$$       $$$       $$$       ");
            Console.WriteLine("     $$$   $$$        $$$         $$$$$$$$$$$     $$$      $$$       $$$       $$$$$$$$   ");
            Console.WriteLine("     $$$    $$$   $$$$$$$$$$$       $$$$$$$$$$$   $$$      $$$   $$$$$$$$$$$   $$$$$$$$$        ");
            Console.WriteLine();
            Console.WriteLine("     $$$$$$$      $$$$$$$$$$$        $$$$$$$$$    $$$      $$$                 $$$$$$$$$$$   $$$$        $$$        $$$$$$$$$$     ");
            Console.WriteLine("     $$$  $$$         $$$         $$$$$$$$$$$     $$$      $$$                     $$$       $$$$$$      $$$      $$$$$$$$$$$      ");
            Console.WriteLine("     $$$  $$$         $$$       $$$$              $$$      $$$                     $$$       $$$ $$$     $$$    $$$$            ");
            Console.WriteLine("     $$$  $$          $$$       $$$$              $$$$$$$$$$$$                     $$$       $$$  $$$    $$$    $$$$            ");
            Console.WriteLine("     $$$$$$           $$$       $$$$              $$$$$$$$$$$$                     $$$       $$$   $$$   $$$    $$$$           ");
            Console.WriteLine("     $$$ $$$          $$$       $$$$              $$$      $$$                     $$$       $$$    $$$  $$$    $$$$              ");
            Console.WriteLine("     $$$  $$$         $$$       $$$$              $$$      $$$                     $$$       $$$     $$$ $$$    $$$$              ");
            Console.WriteLine("     $$$   $$$        $$$         $$$$$$$$$$$     $$$      $$$                     $$$       $$$      $$$$$$      $$$$$$$$$$$    $$   ");
            Console.WriteLine("     $$$    $$$   $$$$$$$$$$$       $$$$$$$$$$$   $$$      $$$                 $$$$$$$$$$$   $$$       $$$$$        $$$$$$$$$$   $$  ");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("     ==============================================================================================================================");


            Console.WriteLine();
            Console.WriteLine();
            Console.Write("Are you a current customer? (answer y or n) ");
            string currentCustomer = Console.ReadLine();

            currentCustomer = currentCustomer.ToLower();
            if (currentCustomer == "n" || currentCustomer == "no")
            {
                Console.Write("Would you like to be added as a new customer? (answer y or n) ");
                string addCustomer = Console.ReadLine();
                addCustomer = addCustomer.ToLower();
                if (addCustomer == "n" || addCustomer == "no")
                {
                    System.Environment.Exit(1);
                }

                Console.Clear();
                Console.Write("What is your full name: ");

                BankCustomer newCustomer = new BankCustomer();
                newCustomer.Name = Console.ReadLine();

                Console.Write("What is your full address: ");
                newCustomer.Address = Console.ReadLine();

                Console.Write("What is your phone number: ");
                newCustomer.PhoneNumber = Console.ReadLine();

                string addAccount = "";
                Console.WriteLine("Would you like to open a new account? (answer y or n)");
                addAccount = Console.ReadLine();
                addAccount = addAccount.ToLower();
                while (addAccount == "y" || addAccount == "yes")
                {
                    string accountType = "";

                    Console.Write("Enter [1] for Checking Account or [2] for Savings Account: ");
                    accountType = Console.ReadLine();
                    if (accountType == "1")
                    {
                        CheckingAccount checkingAccount = new CheckingAccount();
                        Console.Write("How much money would you like to deposit? ");
                        string s = Console.ReadLine();
                        int    amountToDeposit = int.Parse(s);
                        amountToDeposit = amountToDeposit * 100;
                        DollarAmount x = new DollarAmount(amountToDeposit);
                        checkingAccount.Deposit(x);
                        newCustomer.AddAccount(checkingAccount);
                        Console.Write("Would you like to add another account? (answer y or n) ");
                        addAccount = Console.ReadLine();
                    }
                    else
                    {
                        SavingsAccount savingsAccount  = new SavingsAccount();
                        int            amountToDeposit = 0;
                        string         s = "";
                        Console.Write("How much money would you like to deposit? (Must be at least $150) ");
                        s = Console.ReadLine();
                        amountToDeposit = int.Parse(s);
                        amountToDeposit = amountToDeposit * 100;
                        if (amountToDeposit < 15000)
                        {
                            while (amountToDeposit < 15000)
                            {
                                Console.Write("You did not deposit enough! What is the amount you would like to deposit? ");
                                s = Console.ReadLine();
                                amountToDeposit = int.Parse(s);
                                amountToDeposit = amountToDeposit * 100;
                            }
                        }
                        DollarAmount x = new DollarAmount(amountToDeposit);
                        savingsAccount.Deposit(x);
                        newCustomer.AddAccount(savingsAccount);
                        Console.Write("Would you like to add another account? (answer y or n) ");
                        addAccount = Console.ReadLine();
                    }
                }
                Console.Clear();
                Console.WriteLine($"Name: {newCustomer.Name.PadLeft(15)}");
                Console.WriteLine($"Address: {newCustomer.Address.PadLeft(10)}");
                Console.WriteLine($"Phone Number: {newCustomer.PhoneNumber.PadLeft(5)}");
                int accountBalanceTotals = 0;
                for (int i = 0; i < newCustomer.Accounts.Length; i++)
                {
                    accountBalanceTotals += newCustomer.Accounts[i].Balance.Dollars;
                    Console.WriteLine($"Bank Account {i + 1}: {newCustomer.Accounts[i].Balance.ToString()}");
                }
                Console.WriteLine($"Total Balance: ${accountBalanceTotals}");

                Console.ReadLine();
            }
        }
示例#11
0
        static void Main(string[] args)
        {
            bool leave = false;

            Console.WriteLine("Welcome to the virtual bank!");
            Console.WriteLine();
            Console.Write("What is your name?   ");
            string yourName = Console.ReadLine();

            var you = new BankCustomer
            {
                Name = yourName
            };


            Console.Write("Would you like a (C)hecking or a (S)avings account?:   ");
            var         choice      = Console.ReadLine();
            BankAccount yourAccount = new BankAccount();

            choice = choice.ToUpper();
            if (choice == "C")
            {
                Console.Write("What is the name of the checking account?:  ");
                string name     = Console.ReadLine().ToUpper();
                var    newCheck = new CheckingAccount();

                you.AddAccount(newCheck, name);
            }
            else
            {
                Console.Write("What is the name of the savings account?:  ");
                string name = Console.ReadLine().ToUpper();

                var newSave = new SavingsAccount();

                you.AddAccount(newSave, name);
            }
            Console.Clear();

            while (!leave)
            {
                Console.WriteLine("Welcome to the bank " + yourName + "!");

                Console.WriteLine("______________________________________");
                Console.WriteLine();
                Console.WriteLine("What would you like to do today?");
                Console.WriteLine("1. Check your Balance");                //Check Balance
                Console.WriteLine("2. Withdraw money");                    //Withdraw
                Console.WriteLine("3. Deposit money");                     //Deposit
                Console.WriteLine("4. Transfer money to another account"); //Transfer
                Console.WriteLine("5. Open another account");
                Console.WriteLine("6. See a list of your accounts");       //List all of your accounts opened
                Console.WriteLine("7. Check VIP status");
                Console.WriteLine("8. Quit");                              //Quit

                var menuChoice = decimal.Parse(Console.ReadLine());

                switch (menuChoice)
                {
                case 1:
                    Console.Clear();

                    Console.Write("What is the name of the account would you like the balance of?   ");
                    Console.WriteLine();
                    string AChoice = Console.ReadLine();
                    foreach (var acct in you.Accounts)
                    {
                        if (acct.AccountNumber == AChoice.ToUpper())
                        {
                            Console.WriteLine($"Your balance in Account : {acct.AccountNumber} is  {acct.Balance.ToString("C2")}");
                            Console.WriteLine();
                            Console.WriteLine();
                            Console.WriteLine();
                            Console.ReadLine();
                            Console.Clear();

                            break;
                        }
                    }
                    break;

                case 2:
                    Console.Clear();

                    Console.WriteLine("Which account would you like to withdaraw from (Name on Account) ?   ");
                    string wAcct = Console.ReadLine().ToUpper();
                    for (int i = 0; i < you.Accounts.Length; i++)
                    {
                        if (you.Accounts[i].AccountNumber == wAcct)
                        {
                            Console.Write("How Much?   ");
                            decimal withdraw = decimal.Parse(Console.ReadLine());

                            if (you.Accounts[i] is SavingsAccount)
                            {
                                if (withdraw > you.Accounts[i].Balance)
                                {
                                    Console.Clear();
                                    Console.WriteLine();
                                    Console.WriteLine();
                                    Console.WriteLine("No.");
                                    Console.WriteLine();
                                    Console.WriteLine();
                                    Console.ReadLine();
                                    Console.Clear();
                                }
                            }
                            else if (you.Accounts[i] is CheckingAccount)
                            {
                                if (withdraw > you.Accounts[i].Balance)
                                {
                                    Console.WriteLine("...If you insist...");
                                    Console.WriteLine();
                                    System.Threading.Thread.Sleep(2000);
                                    Console.WriteLine("You are now overdraft by $" + Math.Abs(you.Accounts[i].Balance - withdraw));
                                    Console.ReadLine();
                                    Console.Clear();
                                }
                            }
                            you.Accounts[i].Withdraw(withdraw);
                            Console.Clear();
                            break;
                        }

                        if (i == you.Accounts.Length - 1)
                        {
                            Console.WriteLine("You do not have that account...");
                        }
                    }
                    break;

                case 3:

                    Console.Clear();
                    Console.WriteLine("Which account would you like to deposit to (Name on Account) ?   ");
                    string dAcct = Console.ReadLine().ToUpper();
                    for (int i = 0; i < you.Accounts.Length; i++)
                    {
                        if (you.Accounts[i].AccountNumber == dAcct)
                        {
                            Console.Write("How Much?   ");
                            decimal deposit = decimal.Parse(Console.ReadLine());
                            you.Accounts[i].Deposit(deposit);
                            Console.WriteLine($"{deposit.ToString("C2")} has been deposited to {you.Accounts[i].AccountNumber}.");
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                        if (i == you.Accounts.Length - 1)
                        {
                            Console.WriteLine("You do not have that account...");
                            Console.WriteLine();
                            Console.WriteLine();
                            Console.WriteLine();
                        }
                    }
                    break;


                case 4:
                    Console.Clear();

                    bool doesNotExist = true;

                    while (doesNotExist)
                    {
                        Console.Write("Which account are you transferring from (Enter Name on account)?  ");
                        string tFrom = Console.ReadLine().ToUpper();
                        Console.Write("How Much?  ");
                        decimal transAmount = decimal.Parse(Console.ReadLine());


                        for (int i = 0; i < you.Accounts.Length; i++)

                        {
                            if (i == you.Accounts.Length - 1 && you.Accounts[i].AccountNumber != tFrom)
                            {
                                Console.WriteLine("That account doesnt't exist");
                                Console.WriteLine();
                                Console.WriteLine();
                                Console.WriteLine();
                                break;
                            }
                            else if (you.Accounts[i].AccountNumber == tFrom)
                            {
                                var transferFrom = you.Accounts[i];
                                while (doesNotExist)
                                {
                                    Console.WriteLine();
                                    Console.Write("Which of your accounts are you transferring to (Enter Name on account)?   ");
                                    string tTo = Console.ReadLine().ToUpper();

                                    for (int a = 0; a < you.Accounts.Length; a++)
                                    {
                                        if (a == you.Accounts.Length - 1 && you.Accounts[a].AccountNumber != tTo)
                                        {
                                            Console.WriteLine("That account doesnt't exist");
                                            break;
                                        }
                                        else if (you.Accounts[a].AccountNumber == tTo)
                                        {
                                            var transferTo = you.Accounts[a];

                                            transferFrom.Transfer(transferTo, transAmount);

                                            Console.WriteLine($"Account: {transferTo.AccountNumber} has been transferred {transAmount.ToString("C2")}");
                                            Console.ReadLine();



                                            doesNotExist = false;
                                            Console.Clear();

                                            break;
                                        }
                                    }
                                }

                                break;
                            }
                        }
                    }

                    break;

                case 5:
                    Console.Clear();

                    Console.WriteLine("What kind of account would you like to open? (C/S)  ");
                    string aChoice = Console.ReadLine().ToUpper();
                    if (aChoice == "C")
                    {
                        Console.Write("What is the name of the account?   ");
                        string aName    = Console.ReadLine().ToUpper();
                        var    newCheck = new CheckingAccount();

                        you.AddAccount(newCheck, aName);
                        Console.WriteLine();

                        Console.WriteLine($"You have added account: {aName}.");
                        Console.WriteLine();
                        Console.WriteLine();
                        Console.ReadLine();
                        Console.Clear();
                    }
                    else
                    {
                        Console.Write("What is the name of the account?   ");
                        string aName   = Console.ReadLine().ToUpper();
                        var    newSave = new SavingsAccount();

                        you.AddAccount(newSave, aName);
                        Console.WriteLine();
                        Console.WriteLine($"You have added account: {aName}.");
                        Console.WriteLine();
                        Console.WriteLine();
                        Console.ReadLine();
                        Console.Clear();
                    }

                    break;


                case 6:
                    //loop through each account in accounts and print the account name, type, and balance
                    Console.Clear();
                    Console.WriteLine("Generating List of Accounts");
                    Console.WriteLine("...");
                    Console.WriteLine("...");
                    Console.WriteLine("...");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("{0,10}{1,20}{2,18}", "Account Name", "Type of Account", "Balance");
                    foreach (var account in you.Accounts)
                    {
                        var type = "";
                        if (account is CheckingAccount)
                        {
                            type = "Checking";
                        }
                        if (account is SavingsAccount)
                        {
                            type = "Savings";
                        }
                        Console.WriteLine("{0,10}{1,20}{2,25}", account.AccountNumber, type, account.Balance.ToString("C2"));
                    }

                    Console.WriteLine();
                    Console.WriteLine();
                    Console.WriteLine();

                    Console.ReadLine();
                    Console.Clear();
                    break;

                case 7:
                    if (you.IsVIP)
                    {
                        for (int i = 0; i < 1000; i++)
                        {
                            Console.WriteLine($"CONGRATULATIONS {you.Name}!  YOU ARE A VIP!!");
                        }

                        Console.Write("");
                        Console.ReadLine();
                        Console.Clear();
                    }
                    else
                    {
                        Console.WriteLine("Sorry, you are not a VIP yet.");
                        Console.WriteLine();
                        Console.WriteLine();
                        Console.WriteLine();
                        Console.ReadLine();
                        Console.Clear();
                    }
                    break;

                case 8:
                    Console.Write("Are you sure you want to leave the bank?  (Y/N)");
                    Console.WriteLine();
                    var quit = Console.ReadLine();
                    quit = quit.ToUpper();
                    if (quit == "Y")
                    {
                        Console.WriteLine("Leaving Bank ... ");
                        System.Threading.Thread.Sleep(1500);
                        Console.Beep(3007, 80);
                        // Console.Beep(3007, 80);
                        Console.Beep(2600, 100);

                        Console.WriteLine("Bye-Bye!");
                        leave = true;
                        break;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
示例#12
0
        static void Main(string[] args)
        {
            // Read Bank from file
            string filePath = Path.Combine(Environment.CurrentDirectory, "bank.txt");
            Bank   bank     = GetBankFromFile(filePath);

            // Prompt the user for who they are
            BankCustomer user = ChooseUser(bank, true);

            // Prompt the user for which account to enter
            BankAccount working = PickAnAccount(bank, user, true);

            Console.Clear();

            // Prompt user for what they would like to do
            string input = PromptUserForMenuChoice(user, working);

            // Evaluate their choice
            while (input != "Q")
            {
                switch (input)
                {
                case "1":                         // Make a Deposit
                    MakeDeposit(working);
                    break;

                case "2":                         // Make a Withdrawl
                    MakeWithdrawl(working);
                    break;

                case "3":                         // Make a Transfer
                    MakeTransfer(bank, working);
                    break;

                case "4":                         // Show Balance
                    ShowBalance(working);
                    break;

                case "5":                         //Change or add Account
                    working = PickAnAccount(bank, user, true);
                    break;

                case "6":                         //Change User info
                    ChangeUserInfo(user);
                    break;

                case "7":                         //Change User
                    user    = ChooseUser(bank, true);
                    working = PickAnAccount(bank, user, true);
                    break;

                case "8":                         //Save Changes
                    WriteBankToFile(bank, filePath);
                    break;
                }
                input = PromptUserForMenuChoice(user, working);
            }
            WriteBankToFile(bank, filePath);
            Console.Clear();
            Console.WriteLine("Thanks for banking with TE Bank.");
            Console.WriteLine("Have a great day.");
        }