private (int, List <MachineStack <Coin> >) CalculateChange(EnumCoin par, int balance, List <MachineStack <Coin> > coins)
        {
            int modulo;
            var coin = Get(new Coin(par));

            if (balance % (int)par < balance)
            {
                var quantity        = balance / (int)par;
                var quantityInStock = coin.Quantity;
                if (quantityInStock < quantity)
                {
                    quantity = quantityInStock;
                }
                if (!coin.Entity.Blocking)
                {
                    coins.Add(new MachineStack <Coin>(new Coin(par)
                    {
                        Blocking = coin.Entity.Blocking
                    }, quantity));
                    modulo  = balance % (int)par;
                    balance = modulo;
                }
                else
                {
                    coins.Add(new MachineStack <Coin>(new Coin(par)
                    {
                        Blocking = coin.Entity.Blocking
                    }, 0));
                }
            }
            else
            {
                coins.Add(new MachineStack <Coin>(new Coin(par)
                {
                    Blocking = coin.Entity.Blocking
                }, 0));
            }

            return(balance, coins);
        }
Пример #2
0
 public Coin(EnumCoin par)
 {
     Par       = par;
     _blocking = false;
 }