public async Task <IActionResult> Create(int id, [Bind("CaseDescription, EmployeeName, Salary")] SampleCaseType samplecasetype) { if (ModelState.IsValid) { samplecasetype.CaseID = id; _context.Add(samplecasetype); await _context.SaveChangesAsync(); var cid = id; return(RedirectToAction("Details", "Cases", new { id = cid, area = "" })); } return(View(samplecasetype)); }
public async Task <IActionResult> Edit(int id, [Bind("CaseID, CaseDescription, EmployeeName, Salary")] SampleCaseType samplecasetype) { if (id != samplecasetype.CaseID) { return(NotFound()); } if (ModelState.IsValid) { try { IQueryable <SampleCaseType> beforeCases = _context.SampleCaseType.Where(c => c.CaseID == id).AsNoTracking <SampleCaseType>(); SampleCaseType beforeCase = beforeCases.FirstOrDefault(); if (beforeCase == null) { return(NotFound()); } else { // Creating an audit log var audit = new CaseAudit { AuditLog = "Case Specific Details Edited", CaseID = id, LocalUserID = User.Identity.Name }; _context.Add(audit); await _context.SaveChangesAsync(); // Adding old details to tracking var old_details = new SampleCaseTypeTracking { Status = "old", CaseAuditID = audit.CaseAuditID, CaseID = beforeCase.CaseID, CaseDescription = beforeCase.CaseDescription, EmployeeName = beforeCase.EmployeeName, Salary = beforeCase.Salary }; _context.Add(old_details); // Adding current details to tracking var new_details = new SampleCaseTypeTracking { Status = "new", CaseAuditID = audit.CaseAuditID, CaseID = samplecasetype.CaseID, CaseDescription = samplecasetype.CaseDescription, EmployeeName = samplecasetype.EmployeeName, Salary = samplecasetype.Salary }; _context.Add(new_details); // Adding current details to actual Case Type entity _context.Update(samplecasetype); await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { if (!SampleCaseTypeExists(samplecasetype.CaseID)) { return(NotFound()); } else { throw; } } var cid = id; return(RedirectToAction("Details", "Cases", new { id = cid, area = "" })); } return(View(samplecasetype)); }