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));
        }