public async Task ApplyPaymentToBills(PaySetupx paySetupx) { List <Bill> bills = (await _billDataService.GetBills()) .Where(b => b.UserName == _userName && b.Balance > 0) .ToList(); decimal amount = paySetupx.PaymentAmount; foreach (var bill in bills) { decimal balance = bill.Balance; Bill Bill = new Bill(); Bill = bill; if (amount >= balance) { amount -= balance; Bill.Balance = 0; Bill.Closed = true; } else { Bill.Balance -= amount; amount = 0; } await _billDataService.UpdateBill(Bill); } }
public async Task UpdatePaymentInfo(PaySetupx paySetupx) { PaySetup.CreditCardNumber = paySetupx.CreditCardNumber; PaySetup.ExpDate = paySetupx.ExpDate; await _paySetupDataService.UpdatePaySetup(PaySetup); }
public async Task ApplyPayment(PaySetupx paySetupx) { // update credit card info on file await UpdatePaymentInfo(paySetupx); // create charge record await AddCharge(paySetupx); // update open balance on bills await ApplyPaymentToBills(paySetupx); }
public async Task AddCharge(PaySetupx paySetupx) { var Charge = new Charge { UserName = _userName, Date = DateTime.Now, CreditCardNumber = paySetupx.CreditCardNumber, ExpDate = paySetupx.ExpDate, PaymentAmount = paySetupx.PaymentAmount }; await _chargeDataService.AddCharge(Charge); }