Exemplo n.º 1
0
        public async Task <ActionResult <IEnumerable <CommentForAnswerGetViewModel> > > GetCommentsForAnswersAsync(
            [FromRoute] Guid questionId,
            [FromRoute][ModelBinder(BinderType = typeof(ArrayModelBinder))] IEnumerable <Guid> answerIds)
        {
            if (!(await _questionRepository.ExistsAsync(questionId)) || !(await _answerRepository.ExistsAsync(answerIds)))
            {
                return(NotFound());
            }
            var comments = await _commentRepository.GetCommentsForAnswersAsync(answerIds);

            var result = _mapper.Map <List <CommentForAnswerGetViewModel> >(comments);

            result.ForEach(async(comment) =>
            {
                comment.IsOwner     = User.IsOwner(comment);
                comment.IsModerator = User.Identity.IsAuthenticated && await _userService.IsModeratorAsync(User.UserId().Value);
            });
            return(Ok(result));
        }