//Update students Grades
        public ActionResult UpdateStudentGrade(int id)
        {
            try
            {
                var sess = Session["OrgId"].ToString();
                int i    = Convert.ToInt32(sess);

                // Get all the subjects from the database
                var ssg = db.StudentSubjectGrades
                          .Where(x => x.RegisteredUserId == id)
                          .Include(x => x.Subject)
                          .ToList();
                var registereduser = db.RegisteredUsers.Find(id);

                var subject = new Subject();

                // Initialize the view model
                var updatessgviewmodel = new UpdateStudentGradesViewModel
                {
                    StudentSubjectGrades = ssg.Select(x => new StudentSubjectGrade()
                    {
                        StudentSubjectGradeId = x.StudentSubjectGradeId,
                        OrgId                = x.OrgId,
                        SubjectId            = x.SubjectId,
                        SubjectName          = x.SubjectName,
                        FirstTerm_ExamGrade  = x.FirstTerm_ExamGrade,
                        SecondTerm_ExamGrade = x.SecondTerm_ExamGrade,
                        ThirdTerm_ExamGrade  = x.ThirdTerm_ExamGrade,
                        FirstTerm_TestGrade  = x.FirstTerm_TestGrade,
                        SecondTerm_TestGrade = x.SecondTerm_TestGrade,
                        ThirdTerm_TestGrade  = x.ThirdTerm_TestGrade,
                        Subject_Min_Passmark = x.Subject_Min_Passmark,
                        Subject_Max_Passmark = x.Subject_Max_Passmark,
                        RegisteredUserId     = x.RegisteredUserId,
                        Created_date         = x.Created_date,
                        Last_updated_date    = x.Last_updated_date,
                        ClassRef             = x.ClassRef,
                        ClassId              = x.ClassId,
                        Updater_Id           = x.Updater_Id,
                    }).ToList(),

                    RegisteredUser = registereduser,
                };
                return(PartialView("~/Views/Shared/PartialViewsForms/_UpdateStudentGrades.cshtml", updatessgviewmodel));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            return(RedirectToAction("Index", "StudentSubjects"));
        }
        public ActionResult Edit(UpdateStudentGradesViewModel viewmodel)
        {
            try
            {
                foreach (var grade in viewmodel.StudentSubjectGrades)
                {
                    // Locate record
                    var grade_id = db.StudentSubjectGrades.AsNoTracking()
                                   .Where(x => x.StudentSubjectGradeId == grade.StudentSubjectGradeId).FirstOrDefault();

                    var rr = Session["OrgId"].ToString();
                    int i  = Convert.ToInt32(rr);

                    var RegisteredUserId = Convert.ToInt32(Session["RegisteredUserId"]);


                    var updategrade = new StudentSubjectGrade
                    {
                        StudentSubjectGradeId = grade.StudentSubjectGradeId,
                        RegisteredUserId      = grade.RegisteredUserId,
                        SubjectId             = grade.SubjectId,
                        ClassId              = grade.ClassId,
                        ClassRef             = grade.ClassRef,
                        OrgId                = grade.OrgId,
                        FirstTerm_ExamGrade  = grade.FirstTerm_ExamGrade,
                        SecondTerm_ExamGrade = grade.SecondTerm_ExamGrade,
                        ThirdTerm_ExamGrade  = grade.ThirdTerm_ExamGrade,
                        FirstTerm_TestGrade  = grade.FirstTerm_TestGrade,
                        SecondTerm_TestGrade = grade.SecondTerm_TestGrade,
                        ThirdTerm_TestGrade  = grade.ThirdTerm_TestGrade,
                        Subject_Min_Passmark = grade.Subject_Min_Passmark,
                        Subject_Max_Passmark = grade.Subject_Max_Passmark,
                        Last_updated_date    = DateTime.Now,
                        Created_date         = grade.Created_date,
                        SubjectName          = grade.SubjectName,
                        Updater_Id           = RegisteredUserId
                    };

                    grade_id = updategrade;
                    db.Entry(grade_id).State = EntityState.Modified;
                    db.SaveChanges();
                }
                return(RedirectToAction("Grades"));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Redirect("~/ErrorHandler.html"));
            }
        }