public virtual void ReturnMoney() { Money moneyToReturn = MoneyInSide.Allocate(MoneyInTransaction); MoneyInSide -= moneyToReturn; MoneyInTransaction = 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; }
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); }