// TODO: Rewrite logic to return ACCEPTABLE_COINS array /// <summary>Returns all inserted coins back to user.</summary> public Money ReturnMoney() { var res = new Money(); if (this.Amount == new Money()) { if (MessageChanged != null) { MessageChanged(this, MessageEnum.NoMoneyToReturn); } } else { if (MessageChanged != null) { MessageChanged(this, MessageEnum.TakeReturnedMoney); } res = this.Amount; this.Amount -= this.Amount; } return res; }
/// <summary>Inserts the coin into vending machine.</summary> /// <param name="amount">Coin amount.</param> public Money InsertCoin(Money amount) { var res = new Money(); if (!ACCEPTABLE_COINS.Any(a=>a.Cents == amount.Cents && a.Euros == amount.Euros)) { if (MessageChanged != null) { MessageChanged(this, MessageEnum.WrongCoinInserted); res = amount; } } else { this.Amount += amount; if (MessageChanged != null) { MessageChanged(this, MessageEnum.InsertCoinsOrSelectProduct); } } return res; }