/// <summary> /// Displays transaction history /// </summary> private void DisplayTransactions() { ConsoleHelper.ConsoleWriteColor(ConsoleColor.White, "Transaction History", true); AccountView.AccountAmount(mcAccount.mcAccountBalance.mBalance.ToString()); AccountView.ViewTransactions(mcAccount.mcTransactions); Console.ReadLine(); }
/// <summary> /// Handles Account information /// </summary> private void Account() { const int MAKE_TRANSACTION = 1; const int VIEW_TRANSACTION = 2; const int REFRESH = 3; const int LOGOUT = 4; const int LOGOUT_EXIT = 0; int selection; bool bLoggedIn = true; List <int> rules = new List <int> { MAKE_TRANSACTION, VIEW_TRANSACTION, REFRESH, LOGOUT, LOGOUT_EXIT }; Console.Title = "KISS Banking - Account"; while (bLoggedIn) { mcAccount = Task.Run(() => GetAccountEventRaised.Invoke()).Result; Console.Clear(); AccountView.MainMenuHeader(GetUsernameEventRaised.Invoke()); AccountView.AccountAmount(mcAccount.mcAccountBalance.mBalance.ToString()); selection = ConsoleHelper.ValidateSelection( AccountView.MainMenuSelections, rules ); switch (selection) { case MAKE_TRANSACTION: MakeTransaction(); break; case VIEW_TRANSACTION: DisplayTransactions(); break; case REFRESH: break; case LOGOUT: Logout(); bLoggedIn = false; break; case LOGOUT_EXIT: bLoggedIn = false; Exit(); break; } } }
/// <summary> /// Handles new transactions /// </summary> private void MakeTransaction() { const int WITHDRAW = 1; const int DEPOSIT = 2; Transaction newTransaction = new Transaction(); int selection; decimal transferAmount; bool bValidDecimal = true; List <int> rules = new List <int> { WITHDRAW, DEPOSIT }; Console.Clear(); AccountView.AccountAmount(mcAccount.mcAccountBalance.mBalance.ToString()); selection = ConsoleHelper.ValidateSelection(AccountView.TransactionTypeMenu, rules); if (selection == WITHDRAW) { newTransaction.TransactionType = Transaction.Type.WITHDRAW; } else { newTransaction.TransactionType = Transaction.Type.DEPOSIT; } do { Console.Clear(); if (!bValidDecimal) { ConsoleHelper.ConsoleWriteColor(ConsoleColor.Red, "Invalid Amount, must be a decimal number", true); } AccountView.TransactionAmount(); } while (!(bValidDecimal = decimal.TryParse(Console.ReadLine(), out transferAmount))); newTransaction.Amount = new Money(transferAmount); Task.Run(() => TransactionEventRaised.Invoke(newTransaction)).Wait(); }