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