/// <summary> /// Displays instructions to the user /// </summary> /// <param name="aName">the name of the user</param> /// <param name="aAccount">the account the user is working with</param> /// <param name="aInterestRate">the interest rate of the account</param> /// <returns>a string input by the user indicating the action to take</returns> private static string GetAction(string aName, Account aAccount, int aInterestRate) { // greeting and instructions Console.WriteLine("What would you like to do {0}:", aName); Console.WriteLine("Balance is {0:C}", aAccount.GetBalance()); Console.WriteLine("Interest is {0}% and is calculated on the balance every third transaction", aInterestRate); Console.WriteLine( "(D)eposit, (W)ithdrawal, Get (B)alance, (L)ist actions for this session, E(X)it? (not case sensitive)"); // read console var aAction = Console.ReadLine(); return aAction; }
public static void Main(string[] args) { var aInterestRate = 5; var aEventLog = new EventLog(); var aAccount = new Account(aInterestRate, aEventLog); var aActionLower = string.Empty; Console.WriteLine("Enter your name:"); var aName = Console.ReadLine(); do { var aAction = GetAction(aName, aAccount, aInterestRate); if (string.IsNullOrEmpty(aAction)) continue; aActionLower = aAction.ToLower(); // do a deposit if (aActionLower == "d" || aActionLower == "deposit") { MakeDeposit(aAccount); } // do a withdrawal if (aActionLower == "w" || aActionLower == "withdrawal") { MakeWithdrawal(aAccount); } // do a balance inquiry if (aActionLower == "b" || aActionLower == "balance") { Console.Clear(); // print the balance Console.WriteLine("Balance is {0:C}", aAccount.GetBalance()); } // show the log for the session if (aActionLower == "l" || aActionLower == "list") { aEventLog.Events.ForEach(Console.WriteLine); } } while (aActionLower != "x" && aActionLower != "exit"); // exit Console.WriteLine("Goodbye {0}, press \"Enter\" to exit", aName); Console.ReadLine(); }
private static void MakeDeposit(Account aAccount) { Console.WriteLine("Enter amount to deposit"); var aAmountEntered = Console.ReadLine(); // if nothing was entered then continue if (string.IsNullOrEmpty(aAmountEntered)) return; // if a non-numeric value was entered then continue decimal aAmount; if (!decimal.TryParse(aAmountEntered, out aAmount)) return; // adjust the balance aAccount.Deposit(aAmount); // print the balance Console.Clear(); Console.WriteLine("Balance is {0:C}", aAccount.GetBalance()); }
private static void MakeWithdrawal(Account aAccount) { Console.WriteLine("Enter amount to withdrawal"); var aAmountEntered = Console.ReadLine(); // if nothing was entered then continue if (string.IsNullOrEmpty(aAmountEntered)) return; // if a non-numeric value was entered then contine decimal aAmount; if (!decimal.TryParse(aAmountEntered, out aAmount)) return; Console.Clear(); // adjust the balance try { aAccount.Withdrawal(aAmount); } catch (WithdrawalException ex) { Console.WriteLine( "Withdrawal {0:C} is greater than your account balance {1:C}, cannot complete the action", ex.WithdrawalAmount, ex.AccountBalance); return; } // print the balance Console.WriteLine("Balance is {0:C}", aAccount.GetBalance()); }