Exemple #1
0
        public virtual void ReturnMoney()
        {
            Money moneyToReturn = MoneyInSide.Allocate(MoneyInTransaction);

            MoneyInSide       -= moneyToReturn;
            MoneyInTransaction = 0;
        }
Exemple #2
0
        public virtual void BuySnack(int position)
        {
            if (CanBuySnack(position) != string.Empty)
            {
                throw new InvalidOperationException();
            }

            Slot slot = GetSlot(position);

            slot.SnackPile = slot.SnackPile.SubtractOne();

            Money change = MoneyInSide.Allocate(MoneyInTransaction - slot.SnackPile.Price);

            MoneyInSide       -= change;
            MoneyInTransaction = 0;
        }
Exemple #3
0
        public virtual string CanBuySnack(int position)
        {
            SnackPile snackPile = GetSnackPile(position);

            if (snackPile.Quantity == 0)
            {
                return("The snack pile is empty");
            }

            if (MoneyInTransaction < snackPile.Price)
            {
                return("Not enough money");
            }

            if (!MoneyInSide.CanAllocate(MoneyInTransaction - snackPile.Price))
            {
                return("Not enough change");
            }

            return(string.Empty);
        }