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); }
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); }
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)); }