public ActionResult AddGrade(GradeAddGradeVM model)
        {
            if (model.GradeValue < 2 || model.GradeValue > 6)
            {
                ModelState.AddModelError("Error", "Grade must be 2 - 6");
                return View(model);
            }

            GradeRepository gRepo = new GradeRepository();
            Grade grade = new Grade();
            var test = gRepo.GetAll(filter: g => g.StudentID == model.StudentID && g.SubjectID == model.SubjectID).FirstOrDefault();
            if (test != null)
            {
                ModelState.AddModelError("Error", "Student already have grade");
                return View(model);
            }

            grade.StudentID = model.StudentID;
            grade.SubjectID = model.SubjectID;
            grade.GradeValue = model.GradeValue;

            gRepo.Save(grade);

            return RedirectToAction("StudentsGrades" + "/" + model.SubjectID, "Grade");
        }
        public ActionResult AddGrade(int studentID, int subjectID)
        {
            GradeAddGradeVM model = new GradeAddGradeVM();

            UserRepository<Student> sRepo = new UserRepository<Student>();
            SubjectRepository subjRepo = new SubjectRepository();
            GradeRepository gRepo = new GradeRepository();

            Student student = sRepo.GetAll(filter: s => s.ID == studentID && s.Course.CourseSubject.Any(sub => sub.SubjectID == subjectID)).FirstOrDefault();

            Subject subject = subjRepo.GetByID(subjectID);

            Grade grade = gRepo.GetAll(filter: g => g.StudentID == student.ID).FirstOrDefault();

            model.StudentID = student.ID;
            model.SubjectID = subject.ID;

            return View(model);
        }