/// <summary> /// Купить напиток /// </summary> public Wallet BuyDrink(WendingDrinks drinkType) { if (Store[drinkType] < 1) throw new Exception("К сожалению данный напиток закончился. Приносим извинения!"); var price = (int)drinkType; if (_EscrowSum < price) throw new Exception("Недостаточно средств"); var allCoins = new Wallet(); allCoins.Flush(Wallet, false); allCoins.Flush(Escrow, false); var change = CountChange(allCoins, price); Store[drinkType] -= 1; // Обнуляем кошелек Escrow.Flush(Wallet); //Высыпаем в кошелек все оставшиеся после сдачи монеты Wallet.Flush(allCoins); //Обнуляем escrow с помощью временного allCoins кошелька allCoins.Flush(Escrow); _EscrowSum = 0; //Возвращаем сдачу return change; }
static void Main(string[] args) { var port = ConfigurationManager.AppSettings["port"]; var baseAddress = string.Format("http://localhost:{0}/", port); var wallet = new Wallet(); wallet[Nominals.Ten] = 10; wallet[Nominals.Two] = 2; wallet[Nominals.One] = 100; var wallet2 = new Wallet(); wallet2.Flush(wallet, false); // Start OWIN host WebApp.Start<Startup>(baseAddress); Console.ReadLine(); }