コード例 #1
0
        public async Task <ResultResponseDto> SaveResult(ResultRequestDto resultRequest)
        {
            var answer      = _answerRepository.GetAnswer(resultRequest.AnswerId);
            var result      = _mapper.Map <Result>((resultRequest, answer.Component.Id));
            var savedResult = await _resultRepository.SaveResult(result);

            var resultResponse = _mapper.Map <ResultResponseDto>(savedResult);

            return(resultResponse);
        }
コード例 #2
0
        private bool ReadUserIdFromHeader(ResultRequestDto request)
        {
            var token  = Request.Headers[HeaderNames.Authorization];
            var userId = _tokenProvider.GetUserId(token);

            if (!userId.HasValue)
            {
                return(false);
            }

            request.UserId = userId;
            return(true);
        }
コード例 #3
0
        public async Task <IActionResult> PostResult(ResultRequestDto request)
        {
            if (request.UserId == null && !ReadUserIdFromHeader(request))
            {
                return(null);
            }

            var validationResult = _resultRequestValidator.Validate(request);

            if (validationResult.Errors.Any())
            {
                return(BadRequest(validationResult));
            }

            var result = await _resultProcessor.SaveResult(request);

            return(Ok(result));
        }