public IActionResult Create(GradeForStudentAddDTO gradeForStudentAddDTO) { if (ModelState.IsValid) { _gradeService.AddGradeToStudent(gradeForStudentAddDTO); return(RedirectToAction("Index", new { id = gradeForStudentAddDTO.StudentId })); } return(View()); }
public GradeVM AddGradeToStudent(GradeForStudentAddDTO gradeForStudentAddDTO) { if (gradeForStudentAddDTO == null) { throw new ArgumentNullException($"DTO is null"); } var teacher = _dbContext.Users.OfType <Teacher>().FirstOrDefault(t => t.Id == gradeForStudentAddDTO.TeacherId); var student = _dbContext.Users.OfType <Student>().FirstOrDefault(t => t.Id == gradeForStudentAddDTO.StudentId); var subject = _dbContext.Subjects.FirstOrDefault(s => s.Id == gradeForStudentAddDTO.SubjectId); if (teacher == null) { throw new ArgumentNullException("Teacher is null"); } if (!_userManager.IsInRoleAsync(teacher, "Teacher").Result) { throw new InvalidOperationException("Provided user is not a teacher"); } if (student == null) { throw new ArgumentNullException("Student is null"); } if (!_userManager.IsInRoleAsync(student, "Student").Result) { throw new InvalidOperationException("Provided user is not a student"); } if (subject == null) { throw new ArgumentNullException("Subject is null"); } var gradeEntity = _mapper.Map <Grade>(gradeForStudentAddDTO); _dbContext.Grades.Add(gradeEntity); _dbContext.SaveChanges(); var gradeVM = _mapper.Map <GradeVM>(gradeEntity); return(gradeVM); }
public IActionResult Create(int?id = null) { if (!id.HasValue) { return(View("Error")); } var teacher = _userManager.GetUserAsync(User).Result as Teacher; var gradeForCreate = new GradeForStudentAddDTO() { TeacherId = teacher.Id }; var subjectsVM = _mapper.Map <IEnumerable <SubjectVM> >(teacher.Subjects); ViewBag.SubjectsSelectList = _mapper.Map <IEnumerable <SelectListItem> >(subjectsVM); var studentVM = _studentService.GetStudent(x => x.Id == id.Value); ViewBag.Student = studentVM; return(View(gradeForCreate)); }