예제 #1
0
 public Coinbox()
 {
     CoinsInBox = new HandfulOfCoins(0, 0, 0, 0);
 }
예제 #2
0
 public void Remove(HandfulOfCoins handfulOfCoins)
 {
     CoinsOne.Remove(handfulOfCoins.CoinsOne.Amount);
     CoinsTwo.Remove(handfulOfCoins.CoinsTwo.Amount);
     CoinsFive.Remove(handfulOfCoins.CoinsFive.Amount);
     CoinsTen.Remove(handfulOfCoins.CoinsTen.Amount);
 }
예제 #3
0
 public void Add(HandfulOfCoins handfulOfCoins)
 {
     CoinsOne.Add(handfulOfCoins.CoinsOne.Amount);
     CoinsTwo.Add(handfulOfCoins.CoinsTwo.Amount);
     CoinsFive.Add(handfulOfCoins.CoinsFive.Amount);
     CoinsTen.Add(handfulOfCoins.CoinsTen.Amount);
 }
예제 #4
0
        /// <summary>
        /// Расчет сдачи
        /// </summary>
        /// <param name="summToBack"></param>
        /// <returns></returns>
        public HandfulOfCoins GetChange(ref int summToBack)
        {
            //var summToBackDynamic = summToBack;
            var change = new HandfulOfCoins
            (
                coinsTen: GetChangeForCoins(ref summToBack, _machineCoins.CoinsTen),
                coinsFive: GetChangeForCoins(ref summToBack, _machineCoins.CoinsFive),
                coinsTwo: GetChangeForCoins(ref summToBack, _machineCoins.CoinsTwo),
                coinsOne: GetChangeForCoins(ref summToBack, _machineCoins.CoinsOne)
            );

            // возможен вариант когда в аппарате закончаться деньги для сдачи, но мы хотим зарабатывать, поэтому дадим что набрали
            //if (summToBack != 0)
            //{
            //    throw new MachineException("В автомате недостаточно монет для сдачи");
            //}

            return change;
        }
예제 #5
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="coinBox"></param>
 public void AddCoinsToMachine(HandfulOfCoins coinBox)
 {
     _machineCoins.Add(coinBox);
 }
예제 #6
0
 public MachineCash(HandfulOfCoins coins)
 {
     _machineCoins = coins;
 }