public async Task <Response <QuestionViewModel> > Handle(GetQuestion request, CancellationToken cancellationToken) { var question = await _questionsRepository.Get(request.Id); if (question is null) { return(ObjectNotFoundError .CreateFor <Question>(request.Id)); } var viewModel = _mapper.Map <Question, QuestionViewModel>(question); return(viewModel); }
public async Task <Response <QuestionResultViewModel> > Handle(GetQuestionResult request, CancellationToken cancellationToken) { var identity = _identityService.GetIdentity(); var userVotes = await _votesRepository.GetByVoter(identity.Id); var userVoted = userVotes.Any(v => v.QuestionId == request.QuestionId); if (!userVoted) { return(new AuthorizationError( "results are only visible after voting")); } var question = await _questionsRepository.Get(request.QuestionId); if (question is null) { return(ObjectNotFoundError.CreateFor <Question>(request.QuestionId)); } var viewModel = _mapper.Map <Question, QuestionResultViewModel>(question); return(viewModel); }