예제 #1
0
        public void Refund(int currentTotal, int?priceInCents)
        {
            var calculator = new RefundCalculator();
            var refund     = calculator.CalculateRefund(priceInCents ?? 0, currentTotal);

            foreach (var coinCount in refund)
            {
                ReturnTray.AddRange(Enumerable.Repeat(coinCount.Key, coinCount.Value));
            }
        }
예제 #2
0
        public void Accept(Coin coin)
        {
            if (coin.Value() == 0)
            {
                ReturnTray.Add(coin);
                return;
            }

            CoinSlot.Add(coin);
            Context.State = new CurrentValueState(this);
        }
예제 #3
0
 public void ReturnCoins()
 {
     ReturnTray.AddRange(CoinSlot);
     CoinSlot.Clear();
     Context.State = new NoMoneyState(this);
 }