public void MakeChoise(CustomVendingMachine vm)
        {
            Console.Write("Осмотрев меню вы остановились на ");
            Good g = new Good( Console.ReadLine());
            Console.WriteLine();

            if (vm.Contain(g))
            {
                vm.Selection = g;
                Purchase(vm);
            }
            else
            {
                Console.Write("Данный товар не был обнаружен в автомате. ");
                Console.WriteLine("Пожалуйста сделайте выбор снова.");
                Console.WriteLine();
                MakeChoise(vm);
            }
        }
 public virtual void LoadGoods(Good good,int price, int amount)
 {
     goodStorage.AddGood(good, amount);
     prices.Add(good, price);
 }
 protected void DeliverGood(Good good)
 {
     goodStorage.RemoveGood(good);
     display.Show("В лоток выпал товар: " + good.Name);
     changer.CalculateChange();
 }
        public virtual void Purchase(Customer c)
        {
            if (status != MachineStatus.Shutdown)
            {
                // customer make selection
                chosen = new Good("Вафли");
                display.Show("Вы выбрали " + chosen.Name);
                expected = prices[chosen];
                while (!CheckTotal())
                {
                    if (cancel)
                        break;

                    display.Show("Внесите " + WaitFor() + " руб");

                    c.CheckoutWallet();
                    Coin coin = c.Find();
                    if (c.isAvaliable(coin))
                    {
                        c.Spend(coin);
                        Insert(c, coin);
                    }

                    if (totalBill > expected)
                        c.Get(new Coin(totalBill-expected));
                }
                c.CheckoutWallet();
                display.Show("Вот " + chosen.Name);
                totalBill = 0;
            }
        }
 public bool Contain(Good g)
 {
     return goodStorage.Contains(g);
 }