Example #1
0
        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);
            }
        }
Example #3
0
        public int CompareTo(object obj)
        {
            CoinSet cs = (CoinSet)obj;

            return(Value.CompareTo(cs.Value));
        }