示例#1
0
        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));
        }
示例#2
0
        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);
        }