public ActionResult ResolveDispute([Bind(Include = "transaction")] ResolveDispute model, Resolve SelectedResolve, Int32 ProductID, string NewAmount, Int32 DisputeID) { if (ModelState.IsValid) { string id = User.Identity.GetUserId(); AppUser manager = db.Users.Find(id); Product SelectedProduct = db.Accounts.Find(ProductID); Transaction transactionToChange = db.Transactions.Find(DisputeID); Dispute disputeToChange = db.Disputes.Find(DisputeID); transactionToChange.Comments = model.transaction.Comments; if (SelectedResolve == Resolve.Accepted) { transactionToChange.Amount = disputeToChange.Amount; //How does this affect the other transfer transaction } else if (SelectedResolve == Resolve.Adjusted) { if (NewAmount == "" || NewAmount == null) { return(View(model)); } decimal newAmount = Convert.ToDecimal(NewAmount); if (newAmount <= 0) { return(View(model)); } if (transactionToChange.TransactionType == "Withdrawal") { newAmount = -newAmount; } transactionToChange.Amount = newAmount; } SelectedProduct.Balance = GetBalance(SelectedProduct); disputeToChange.Status = SelectedResolve.ToString(); disputeToChange.Manager = manager; db.Entry(disputeToChange).State = EntityState.Modified; db.Entry(transactionToChange).State = EntityState.Modified; db.Entry(SelectedProduct).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(model)); }
public ActionResult ResolveDispute(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Dispute dispute = db.Disputes.Find(id); if (dispute == null) { return(HttpNotFound()); } Transaction transaction = db.Transactions.Find(dispute.DisputeID); ResolveDispute model = new ResolveDispute(); model.dispute = dispute; model.transaction = transaction; ViewBag.id = transaction.Account.ProductID; ViewBag.disputeid = dispute.DisputeID; return(View(model)); }