Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        public void Execute()
        {
            AtmScreen.WelcomeATM();

            CheckCardNoPassword();
            AtmScreen.WelcomeCustomer(selectedAccount.FullName);

            while (true)
            {
                AtmScreen.DisplaySecureMenu();
                ProcessMenuOption();
            }
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
0
 public AtmApp()
 {
     screen = new AtmScreen();
 }
Exemplo n.º 5
0
 public void CheckBalance()
 {
     AtmScreen.PrintCheckBalanceScreen();
     Utility.PrintConsoleWriteLine(Utility.FormatAmount(selectedAccount.AccountBalance), false);
 }