public Deposit(int userAccountNumber, IScreen atmScreen, IBankDatabase atmBankDatabase, IKeypad atmKeypad, IDepositSlot atmDepositSlot) : base(userAccountNumber, atmBankDatabase, atmScreen) { _keypad = atmKeypad; _depositSlot = atmDepositSlot; }
public Withdrawal(int userAccount, IScreen atmScreen, IBankDatabase atmBankDatabase, IKeypad atmKeypad, ICashDispenser atmCashDispenser) : base(userAccount, atmBankDatabase, atmScreen) { _keypad = atmKeypad; _cashDispenser = atmCashDispenser; }
/// <summary> /// no-argument ATM constructor initializes instance variables /// </summary> public ATM(ICashDispenser cashDispenser, IBankDatabase bankDatabase, IDepositSlot depositSlot, IKeypad keypad, IScreen screen, IMenu menu) { _userAuthenticated = false; _currentAccountNumber = 0; _depositSlot = depositSlot; _keypad = keypad; _screen = screen; _menu = menu; _cashDispenser = cashDispenser; _bankDatabase = bankDatabase; }
public override void Execute() { IBankDatabase bankDatabase = base.BankDatabase; IScreen screen = base.Screen; decimal availableBalance = bankDatabase.getAvailableBalance(AccountNumber); decimal totalBalance = bankDatabase.getTotalBalance(AccountNumber); screen.DisplayMessageLine("\nBalance Information:"); screen.DisplayMessage(" - Available balance: "); screen.DisplayDollarAmount(availableBalance); screen.DisplayMessage("\n - Total balance: "); screen.DisplayDollarAmount(totalBalance); screen.DisplayMessageLine(string.Empty); Sleep(5000); }
public override void Execute() { bool isCashDispensed = false; decimal availableBalance; IBankDatabase bankDatabase = base.BankDatabase; do { _amount = (decimal)DisplayMenuOfAmounts(); if (_amount != CANCELED) { availableBalance = bankDatabase.getAvailableBalance(AccountNumber); if (_amount <= availableBalance) { if (_cashDispenser.IsSufficiantCashAvailable(_amount)) { bankDatabase.Debit(AccountNumber, _amount); _cashDispenser.DispenseCash(_amount); isCashDispensed = true; Screen.DisplayMessageLine("\nYour cash has been dispensed. Please take your cash now."); } else { Screen.DisplayMessageLine("\nInsufficient cash available in the ATM.\n\nPlease choose a smaller amount."); } } else { Screen.DisplayMessage("\nInsufficient funds in your account.\n\nPlease choose a smaller amount."); } Sleep(3000); } else { Screen.DisplayMessageLine("\nCancelling transaction..."); Sleep(3000); return; } } while (!isCashDispensed); }
public ITransaction CreateTransaction(int type, int currentAccountNumber, IBankDatabase atmBankDatabase, IScreen atmScreen, IKeypad atmKeypad, ICashDispenser atmCashDispenser, IDepositSlot atmDepositSlot) { ITransaction temp = null; switch (type) { case 1: temp = new BalanceInquiry(currentAccountNumber, atmScreen, atmBankDatabase); break; case 2: temp = new Withdrawal(currentAccountNumber, atmScreen, atmBankDatabase, atmKeypad, atmCashDispenser); break; case 3: temp = new Deposit(currentAccountNumber, atmScreen, atmBankDatabase, atmKeypad, atmDepositSlot); break; } return(temp); }
public Transaction(int userAccountNumber, IBankDatabase atmBankDatabase, IScreen atmScreen) { this.AccountNumber = userAccountNumber; this.BankDatabase = atmBankDatabase; this.Screen = atmScreen; }
public BalanceInquiry(int userAccountNumber, IScreen atmScreen, IBankDatabase atmBankDatabase) : base(userAccountNumber, atmBankDatabase, atmScreen) { }
public void SetValues(int userAccountNumber, IBankDatabase atmBankDatabase, IScreen atmScreen) { AccountNumber = userAccountNumber; BankDatabase = atmBankDatabase; Screen = atmScreen; }