public void AddCoins(CoinSet coins) { if (coins.Value == Value) { Quantity += coins.Quantity; } else { throw new IncompatibleCoinValuesException(Value, coins.Value); } }
//Método auxiliar que realmente insere um conjunto de moedas na máquina protected void AddCoinsInTheSet(int pos, CoinSet coins) { if (coins.Quantity <= FreeSpace()) { CoinsSet[pos].AddCoins(coins); NumCoins += coins.Quantity; TotalValue += coins.TotalValue(); } else { //Nesse caso insere somente as moedas que ainda cabem na máquina e lança uma exceção int freeSpace = FreeSpace(); CoinsSet[pos].AddCoins(freeSpace); NumCoins = MaximumCapacity; TotalValue += freeSpace * coins.Value; throw new MachineOverflowException(freeSpace, coins.Quantity); } }
public int CompareTo(object obj) { CoinSet cs = (CoinSet)obj; return(Value.CompareTo(cs.Value)); }