public IActionResult DownvoteComment(int id, int commentId, [FromServices] IAddCommentVoteCommand command)
        {
            var request = new UserCommentVoteDto
            {
                CommentId   = commentId,
                CommentVote = CommentVote.Downvote
            };

            _executor.ExecuteCommand(command, request);
            return(StatusCode(StatusCodes.Status201Created));
        }
        public void Execute(UserCommentVoteDto request)
        {
            request.UserId = _actor.Id;

            _validator.ValidateAndThrow(request);

            var user = _context.Users.Include(u => u.UserCommentVotes).First(u => u.Id == _actor.Id);

            if (user.UserCommentVotes.Any(uc => uc.CommentId == request.CommentId))
            {
                throw new ActionNotRepeatableException(UseCase.getUseCase(this.Id), _actor);
            }

            user.UserCommentVotes.Add(_mapper.Map <UserCommentVote>(request));

            _context.SaveChanges(_actor.Id);
        }