Пример #1
0
        public async Task <Object> GetChange()
        {
            return(await Task.Run(() =>
            {
                try
                {
                    Double sum = _ctx.PurchaseInfo.Item.PayedSum;


                    Double sumToMessage = sum;
                    PurseBase coinsToChange = MakeChange(sum);

                    MakeUpdatesInPurses(coinsToChange);

                    return new
                    {
                        error = String.Empty,
                        message = String.Format("Сдача в размере {0} выдана!", sumToMessage)
                    };
                }
                catch (Exception e)
                {
                    return new
                    {
                        error = e.Message,
                        message = String.Empty
                    };
                }
            }));
        }
Пример #2
0
 /// <summary>
 /// Добавляет изменения в "БД"
 /// </summary>
 /// <param name="coinsToChange">Монеты для сдачи</param>
 protected void MakeUpdatesInPurses(PurseBase coinsToChange)
 {
     foreach (var coin in coinsToChange.Coins)
     {
         _ctx.UserPurse.Item.Coins.First(x => x.Value == coin.Value).Count         += coin.Count;
         _ctx.CoffeMachinePurse.Item.Coins.First(x => x.Value == coin.Value).Count -= coin.Count;
     }
     _ctx.PurchaseInfo.Item.PayedSum = 0;
     _ctx.Save(_path);
 }
Пример #3
0
 public void MakeUpdatesInPursesForTests(PurseBase coinsToChange)
 {
     this.MakeUpdatesInPurses(coinsToChange);
 }
Пример #4
0
 /// <summary>
 /// Добавляет изменения в "БД"
 /// </summary>
 /// <param name="coinsToChange">Монеты для сдачи</param>
 protected void MakeUpdatesInPurses(PurseBase coinsToChange)
 {
     foreach (var coin in coinsToChange.Coins)
     {
         _ctx.UserPurse.Item.Coins.First(x => x.Value == coin.Value).Count += coin.Count;
         _ctx.CoffeMachinePurse.Item.Coins.First(x => x.Value == coin.Value).Count -= coin.Count;
     }
     _ctx.PurchaseInfo.Item.PayedSum = 0;
     _ctx.Save(_path);
 }
Пример #5
0
 public void MakeUpdatesInPursesForTests(PurseBase coinsToChange)
 {
     this.MakeUpdatesInPurses(coinsToChange);
 }