Home > Software engineering >  Updating records on different tables asp.MVC
Updating records on different tables asp.MVC

Time:09-16

In my application from the view someone pressed the Approve button, controller will collect the Main Id of the request. Here I want to update 3rd table Approval_Status column to true. I passed the main Id and got the 3rd table Id which I want to update record to the variable.

int PartyId = db.ApprovalProcess.Where(x => x.Req_Id == id).ToList().First().Id;

and then I wrote this code to pass the value. But it wont work. Can I get a help for this (question will seems like easy to you, but i want to tell you that I'm self learning ASP.NET MVC these days. So some stuff still I couldn't get)

Here is my database structure. Main table name is AppRequest, 2nd table is ApprovalProcess and the 3rd one is Approval_Parties.

enter image description here

This is my current code:

public ActionResult ApproveRequest(int? id)
{
     int PartyId = db.ApprovalProcess.Where(x => x.Req_Id == id).ToList().First().Id;
     
     if (ModelState.IsValid)
     {
         // model.Approved_Date = DateTime.Now;
               
         ApprovalParty approvalParty = new ApprovalParty();
         approvalParty.Approve_Status = true;

         db.SaveChanges();

         return RedirectToAction("Index");
     }
}

I think I'm missing the code that which record should update in the table that already assigned that Id to the PartyId.

CodePudding user response:

Something like this would work:

public ActionResult ApproveRequest(int? id)
{
    ApprovalProcess approvalProcess = db.ApprovalProcess.FirsOrDefault(x => x.Req_Id == id);

    if (approvalProcess != null) 
    {
        ApprovalParty approvalParty = db.Approval_Parties.FirsOrDefault(x => x.ApprovalProcess_Id == approvalProcess.Id);
     
        if (approvalParty != null)
        {
            approvalParty.Approve_Status = true;
            approvalParty.Approved_Date = DateTime.Now;

            db.SaveChanges();
            
            return RedirectToAction("Index");
        }
    }
}
  • Related