Ejemplo n.º 1
0
 public Deposit(int userAccountNumber, Screen atmScreen,
                BankDatabase atmBankDatabase, Keypad atmKeypad, DepositSlot atmDepositSlot)
     : base(userAccountNumber, atmBankDatabase, atmScreen)
 {
     _keypad      = atmKeypad;
     _depositSlot = atmDepositSlot;
 }
Ejemplo n.º 2
0
        public override void Execute()
        {
            _amount = PromptForDepositAmount();

            if (_amount != CANCELED)
            {
                Screen.DisplayMessage("Please insert a deposit envelope containing ");
                Screen.DisplayDollarAmount(_amount);
                Screen.DisplayMessageLine(" in the deposit slot.");

                bool envelopeReceived = DepositSlot.IsEnvelopeReceived;

                if (envelopeReceived)
                {
                    Screen.DisplayMessageLine(
                        "Your envelope has been received.\n" +
                        "The money just deposited will not be available " +
                        "until we \nverify the amount of any " +
                        "enclosed cash, and any enclosed checks clear.");

                    BankDatabase.Credit(AccountNumber, _amount);
                }
                else
                {
                    Screen.DisplayMessageLine("You did not insert an envelope, so the ATM has canceled your transaction.");
                }
            }
            else
            {
                Screen.DisplayMessageLine("Canceling transaction.");
            }

            Sleep(3000);
        }
Ejemplo n.º 3
0
 public Withdrawal(int userAccount, Screen atmScreen,
                   BankDatabase atmBankDatabase, Keypad atmKeypad, CashDispenser atmCashDispenser)
     : base(userAccount, atmBankDatabase, atmScreen)
 {
     _keypad        = atmKeypad;
     _cashDispenser = atmCashDispenser;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// no-argument ATM constructor initializes instance variables
 /// </summary>
 public ATM()
 {
     _userAuthenticated    = false;
     _currentAccountNumber = 0;
     _depositSlot          = new DepositSlot();
     _keypad        = new Keypad();
     _screen        = new Screen();
     _cashDispenser = new CashDispenser();
     _bankDatabase  = new BankDatabase();
 }
Ejemplo n.º 5
0
        public override void Execute()
        {
            BankDatabase bankDatabase = base.bankDatabase;
            Screen       screen       = base.screen;

            decimal availableBalance = bankDatabase.getAvailableBalance(AccountNumber);
            decimal totalBalance     = bankDatabase.getTotalBalance(AccountNumber);

            screen.DisplayMessageLine("Balance Information: "
                                      + "\n - Available balance: " + availableBalance
                                      + "\n - Total balance: " + totalBalance);
            Sleep(5000);
        }
Ejemplo n.º 6
0
        public override void Execute()
        {
            BankDatabase bankDatabase = base.BankDatabase;

            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;

            BankDatabase bankDatabase = base.bankDatabase;
            Screen       screen       = base.screen;

            do
            {
                amount = (decimal)displayMenu();//Method integer değer döndürdüğü için type cast yapıldı.

                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("\n Insufficient funds in your account.\n\n Please choose a smaller amount.");
                    }
                    Sleep(2000);
                }
                else
                {
                    screen.DisplayMessageLine("\nCancelling transaction...");
                    Sleep(2000);
                    return;
                }
            } while (!isCashDispensed);
        }
Ejemplo n.º 8
0
        public override void Execute()
        {
            bool    isCashDispensed = false;
            decimal availableBalance;

            BankDatabase 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);
        }
Ejemplo n.º 9
0
 public BalanceInquiry(int userAccountNumber, BankDatabase atmBankDatabase)
     : base(userAccountNumber, atmBankDatabase)
 {
 }
Ejemplo n.º 10
0
 public Withdrawal(int userAccount, BankDatabase atmBankDatabase)
     : base(userAccount, atmBankDatabase)
 {
 }
 public Transaction(int AccountNumber, BankDatabase bankDatabase, Screen screen)
 {
     this.AccountNumber = AccountNumber;
     this.bankDatabase  = bankDatabase;
     this.screen        = screen;
 }
 public BalanceInquiry(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase)
     : base(userAccountNumber, atmBankDatabase, atmScreen)
 {
 }
Ejemplo n.º 13
0
 public Deposit(int userAccountNumber, BankDatabase atmBankDatabase)
     : base(userAccountNumber, atmBankDatabase)
 {
 }
        const int CANCELED = 7; // Kullanıcının çekmek istediği para miktarını kendisinin belirlemesi için bir seçenek daha eklendi.(Ek özellik)

        public Withdrawal(int userAccount, Screen screen,
                          BankDatabase bankDatabase, Keypad keypad, CashDispenser cashDispenser) : base(userAccount, bankDatabase, screen)
        {
            this.keypad        = keypad;
            this.cashDispenser = cashDispenser;
        }
Ejemplo n.º 15
0
 public BalanceInquiry(int AccountNumber, Screen screen, BankDatabase bankDatabase) : base(AccountNumber, bankDatabase, screen)
 {
 }