Пример #1
0
        //Method that processes the request or passes it to the next handler
        public virtual bool DepositRequest(int amount, int denom, Account currAccount, ATM currATM, ref int sum_deposit)
        {
            if (amount + currATM.GetCurrNotesAmount() > currATM.GetMaxNotesAmount())
            {
                return(false);
            }
            else if (denom == Denomination)
            {
                //то добавляем в ATM -> новое количество купюр
                addNewBills(amount);

                //добавляем к текущему количеству купюр
                currATM.SetCurrNotesAmount(amount);

                //это сумма денег, выполняем транзакцию
                int currTransactionSum = amount * denom;

                sum_deposit += currTransactionSum;

                return(true);
            }
            else
            {
                return(next.DepositRequest(amount, denom, currAccount, currATM, ref sum_deposit));
            }
        }
Пример #2
0
Файл: ATM.cs Проект: cdrann/ATM
 public void doDeposit(int amount, int denomination, Account currAccount, ref int sum_deposit)
 {
     while (true)
     {
         //sender pass the request to first handler in the pipeline
         var isDeposible = bills50s.DepositRequest(amount, denomination, currAccount, this, ref sum_deposit);
         if (!isDeposible)
         {
             MessageBox.Show($"Failed to deposit ${amount}!");
             //привышено количество максимальное купюр в банкомате
         }
     }
 }