public GradesReportVm GetGradesReportForStudent(GetGradesDto getGradesDto) { if (getGradesDto == null) { throw new ArgumentNullException("Get grades dto is null"); } var getterUser = _dbContext.Users.FirstOrDefault(x => x.Id == getGradesDto.GetterUserId); if (getterUser == null) { throw new ArgumentNullException("getter user is null"); } if (!_userManager.IsInRoleAsync(getterUser, "Teacher").Result&& !_userManager.IsInRoleAsync(getterUser, "Student").Result&& !_userManager.IsInRoleAsync(getterUser, "Parent").Result) { throw new InvalidOperationException("The getter user don't have permissions to read."); } var student = _dbContext.Users.OfType <Student>().FirstOrDefault(s => s.Id == getGradesDto.StudentId); if (student == null) { throw new InvalidOperationException("The given user is not student"); } var gradesReport = Mapper.Map <GradesReportVm>(student); return(gradesReport); }
public IActionResult Details(int?studentId) { var getGradesDto = new GetGradesDto { StudentId = studentId ?? _userManager.GetUserAsync(User).Result.Id, GetterUserId = _userManager.GetUserAsync(User).Result.Id }; var studentGradesReport = _gradeService.GetGradesReportForStudent(getGradesDto); if (studentGradesReport == null) { return(View("Error")); } return(View(studentGradesReport)); }