public ActionResult PayBills() { string id = User.Identity.GetUserId(); AppUser user = db.Users.Find(id); var model = new List <PayeeTransaction>(); foreach (var payee in user.Payees) { PayeeTransaction item = new PayeeTransaction(); item.Name = payee.Name; item.Type = payee.Type; model.Add(item); } ViewBag.List = model; ViewBag.AllAccounts = GetAllAccounts(); return(View(model.ToList())); }
public ActionResult PayBills(PayeeTransaction model, Int32 ProductID) { if (ModelState.IsValid) { if (model.Amount <= 0) { ViewBag.Error = "Amount cannot be $0.00 or less."; return(RedirectToAction("PayBills")); } Product SelectedProduct = db.Accounts.Find(ProductID); Transaction transaction = new Transaction(); transaction.Amount = -model.Amount; transaction.Date = model.Date; transaction.Account = SelectedProduct; transaction.Description = "Payment to " + model.Name + " for " + model.Type + " bill"; transaction.TransactionType = "Bill Payment"; SelectedProduct.Balance += transaction.Amount; if (SelectedProduct.Balance < 0) { if (SelectedProduct.Balance < -50) { ViewBag.Message = "Transaction exceeds $50 overdraft limit"; return(RedirectToAction("Withdrawal", "Transactions", new { transaction = transaction, ProductID = ProductID })); } Transaction fee = new Transaction(); fee.Amount = -30; fee.Description = "Overdraft fee"; fee.Date = model.Date; fee.Account = SelectedProduct; fee.TransactionType = "Overdraft Fee"; db.Transactions.Add(fee); SelectedProduct.Balance += fee.Amount; } db.Transactions.Add(transaction); db.Entry(SelectedProduct).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "Transactions", new { id = ProductID })); } return(RedirectToAction("PayBills")); }