Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }