public void editScore_should_throw_argument_exception_when_invalid_request()
        {
            var editScoreRequest = new EditScoreRequest
            {
                CourseId   = 10,
                SeasonId   = 1,
                EpisodeId  = 1,
                NewScore   = 2,
                PupilId    = 1,
                QuestionId = 1
            };

            _teacherService.EditScore(editScoreRequest).ShouldThrow <ArgumentException>();
        }
        public void editScore_should_correctly_edit_score_of_pupil()
        {
            var editScoreRequest = new EditScoreRequest
            {
                CourseId   = 1,
                SeasonId   = 1,
                EpisodeId  = 1,
                NewScore   = 2,
                PupilId    = 1,
                QuestionId = 1
            };

            _teacherService.EditScore(editScoreRequest);

            var answer = _context.PupilInCourseAnswersQuestion
                         .Find(editScoreRequest.CourseId, editScoreRequest.PupilId,
                               editScoreRequest.QuestionId, editScoreRequest.EpisodeId, editScoreRequest.SeasonId);

            answer.AchievedPoints.ShouldBe(editScoreRequest.NewScore);
        }
Exemplo n.º 3
0
        public async Task EditScore(EditScoreRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException();
            }

            var answers = await _questionRepository
                          .GetAnswerByPrimaryKey(request.QuestionId, request.EpisodeId, request.SeasonId);

            var answer = answers.FirstOrDefault(x =>
                                                x.PupilInCourseCourseId == request.CourseId &&
                                                x.PupilInCoursePupilId == request.PupilId);

            if (answer == null)
            {
                throw new ArgumentException($"Pupil with id {request.PupilId} in course with id " +
                                            $"{request.CourseId} did not answer question with id {request.QuestionId}");
            }

            answer.AchievedPoints = request.NewScore;
            await _questionRepository.UnitOfWork.SaveChangesAsync();
        }
Exemplo n.º 4
0
        public async Task <IActionResult> EditScore(EditScoreRequest request)
        {
            await _teacherService.EditScore(request);

            return(Ok());
        }