public IActionResult PublishComment([FromBody] CommentAddModel model) { CommentAddReturnModel ret = new CommentAddReturnModel(); if (!ModelState.IsValid) { return(BadRequest()); } Claim idClaim = User.FindFirst("sub"); Claim unameClaim = User.FindFirst("nickname"); if (idClaim == null) { return(StatusCode(401)); } else { ret = _commentActionService.PublishComment(model.Content, idClaim.Value, model.ReviewId); if (ret.IsActionSucceed) { ret.Comment.UserInfo.UserName = unameClaim.Value; _bus.Publish <UserAddedCommentAction>(new UserAddedCommentAction() { DateUtcAction = DateTime.UtcNow, CommentId = ret.Comment.Id, ReviewId = model.ReviewId, UserId = idClaim.Value, ReviewAuthorId = ret.ReviewAuthorId, Username = unameClaim.Value, PostId = ret.PostId }); } } return(Ok(ret)); }
public CommentAddReturnModel PublishComment(string content, string currUserId, int reviewId = -1) { CommentAddReturnModel ret = new CommentAddReturnModel(); if (reviewId == -1) { ret.IsActionSucceed = false; return(ret); } Review review = _context.Set <Review>().FirstOrDefault(f => f.Id == reviewId); if (review == null) { ret.IsActionSucceed = false; return(ret); } ret.PostId = review.PostId.Value; ret.ReviewAuthorId = review.UserId; Comment comment = new Comment() { DateUtcAdd = DateTime.UtcNow, DateUtcModified = DateTime.UtcNow, ReviewId = reviewId, AuthorId = currUserId, Content = TagHelpers.RemoveUnwantedTags(content), }; _dbSet.Add(comment); if (_context.SaveChanges() != 0) { ret.Comment = new ReviewCommentDTO { Id = comment.Id, DateUtcPublished = comment.DateUtcAdd, Content = comment.Content, DislikeCount = 0, LikeCount = 0, ReviewId = reviewId, UserInfo = new UserInfoExtraSmall() { AppUserId = currUserId, ProfileImage = _userImageSettings.UserImageUrlTemplate.Replace("{#appUserId}", currUserId) }, LikeStatus = LikeStatus.None, AuthorId = currUserId }; ret.IsActionSucceed = true; return(ret); } ret.IsActionSucceed = false; return(ret); }