コード例 #1
0
        public async Task RegisterAsync(PointOfSale pointOfSale, ChangeComposition composition)
        {
            using var context = new PointOfSaleContext(_configuration);
            await context.Transactions.AddAsync(new Transactions
            {
                ValueToPay    = pointOfSale.ValueToPay,
                TotalValue    = pointOfSale.TotalValue,
                Change        = composition.TotalChange,
                ChangeMessage = composition.ResponseMessage
            });

            await context.SaveChangesAsync();
        }
コード例 #2
0
        private void SetChange(decimal change, ChangeComposition changeComposition, List <Money> moneyOnAccount, List <Money> moneyToReceive)
        {
            for (int i = 0; i < moneyOnAccount.Count && changeComposition.TotalChange < change; i++)
            {
                var amount = moneyOnAccount.ElementAt(i);
                var value  = amount.Value;

                if (value <= Math.Round(change - changeComposition.TotalChange, 2, MidpointRounding.ToZero))
                {
                    moneyToReceive.Add(amount);
                    changeComposition.AddTotalChange(value);
                    i--;
                }
            }
        }
コード例 #3
0
 private ChangeComposition CalculeChange(decimal change, ChangeComposition changeComposition)
 {
     SetChange(change, changeComposition, Bills, changeComposition.Bills);
     SetChange(change, changeComposition, Coins, changeComposition.Coins);
     return(changeComposition);
 }