public void CheckCardNoPassword() { bool isLoginPassed = false; while (isLoginPassed == false) { var inputAccount = screen.LoginForm(); AtmScreen.LoginProgress(); foreach (UserBankAccount account in _accountList) { selectedAccount = account; if (inputAccount.CardNumber.Equals(account.CardNumber)) { selectedAccount.TotalLogin++; if (inputAccount.CardPin.Equals(account.CardPin)) { selectedAccount = account; if (selectedAccount.IsLocked) { // This is when database is used and when the app is restarted. // Even user login with the correct card number and pin, // If IsLocked status is locked, user still will be still blocked. AtmScreen.PrintLockAccount(); } else { selectedAccount.TotalLogin = 0; isLoginPassed = true; break; } } } } if (isLoginPassed == false) { Utility.PrintMessage("Invalid card number or PIN.", false); // Lock the account if user fail to login more than 3 times. selectedAccount.IsLocked = selectedAccount.TotalLogin == 3; if (selectedAccount.IsLocked) { AtmScreen.PrintLockAccount(); } } Console.Clear(); } }
public void Execute() { AtmScreen.WelcomeATM(); CheckCardNoPassword(); AtmScreen.WelcomeCustomer(selectedAccount.FullName); while (true) { AtmScreen.DisplaySecureMenu(); ProcessMenuOption(); } }
private void ProcessMenuOption() { switch (Validator.Convert <int>("your option")) { case (int)SecureMenu.CheckBalance: CheckBalance(); break; case (int)SecureMenu.PlaceDeposit: PlaceDeposit(); break; case (int)SecureMenu.MakeWithdrawal: MakeWithdrawal(); break; case (int)SecureMenu.ThirdPartyTransfer: var vMThirdPartyTransfer = screen.ThirdPartyTransferForm(); PerformThirdPartyTransfer(vMThirdPartyTransfer); break; case (int)SecureMenu.ViewTransaction: ViewTransaction(); break; case (int)SecureMenu.Logout: AtmScreen.LogoutProgress(); Utility.PrintConsoleWriteLine("You have succesfully logout. Please collect your ATM card."); ClearSession(); Execute(); break; default: Utility.PrintMessage("Invalid Option Entered.", false); break; } }
public AtmApp() { screen = new AtmScreen(); }
public void CheckBalance() { AtmScreen.PrintCheckBalanceScreen(); Utility.PrintConsoleWriteLine(Utility.FormatAmount(selectedAccount.AccountBalance), false); }