public IActionResult AddGrade(string id)
        {
            int studentId = this.GetStudentIdFromString(id);

            var subjects = this.studentSubjectsService.GetAllSubjectsByStudentId <SubjectDropDownListViewModel>(studentId);

            GradeInputViewModel input = new GradeInputViewModel
            {
                Subjects = subjects,
            };

            return(this.View(input));
        }
        public IActionResult AddGrade(GradeInputViewModel input, string id)
        {
            int studentId = this.GetStudentIdFromString(id);

            if (!this.ModelState.IsValid)
            {
                input.Subjects = this.studentSubjectsService.GetAllSubjectsByStudentId <SubjectDropDownListViewModel>(studentId);
                return(this.View(input));
            }

            var subject = this.subjectService.GetById(input.SubjectId);

            int currentPage = this.GetPagesCountFromString(id);
            int?courseId    = this.studentsService.GetCourseIdByStudentId(studentId);

            if (subject == null)
            {
                return(this.RedirectToAction("StudentInfoGrades", new { @id = courseId, page = currentPage }));
            }

            int subjectId = subject.Id;

            using (this.db)
            {
                this.db.Grades.Add(new Grade
                {
                    Value       = input.Value,
                    StudentId   = studentId,
                    SubjectId   = subjectId,
                    SubjectName = subject.Name,
                });

                this.db.SaveChanges();
            }

            return(this.RedirectToAction("StudentInfoGrades", new { @id = courseId, page = currentPage }));
        }