/// <summary> /// Метод внесения средств в банкомат /// </summary> /// <param name="cashMachine">банкомат</param> /// <returns>признак успешной операции</returns> public bool DepositFundsToCashMachine(ICashMachine cashMachine) { // Временный список банкнот IList <Banknote> tempListOfBanknotes = CalculateBanknotes.DepositBanknotesByAmounOfCash(DepositAmount, cashMachine.BanknotesCountOfEachType); // Проверка: хватит ли места для банкнот в банкомате после внесения средств if (cashMachine.CurrentCountOfBanknotes + tempListOfBanknotes.Count < cashMachine.MaxCountOfBanknotes) { // Внесение средств foreach (var banknote in tempListOfBanknotes) { cashMachine.AddBanknote(banknote); } return(true); } return(false); }
/// <summary> /// Выдача средств по умолчанию (без размена на выбранный номинал) /// </summary> /// <param name="cashMachine">банкомат</param> /// <returns>признак успешной операции</returns> public bool DefaultWithdraw(ICashMachine cashMachine) { IList <Banknote> tempBanknotes = CalculateBanknotes.WithdrawBanknotesByAmounOfCash( WithdrawAmount, cashMachine.BanknotesCountOfEachType, out int[] banknotesAmountClone); if (tempBanknotes != null) { // Выдача средств foreach (var banknote in tempBanknotes) { cashMachine.RemoveBanknote(banknote); } // Замена массива с количеством банкнот каждого номинала на обработанный массив после операции выдачи Array.Copy(banknotesAmountClone, cashMachine.BanknotesCountOfEachType, BanknoteTypes.Length); return(true); } return(false); }