Пример #1
0
        public IActionResult GetCommentSubComments([FromQuery] int commentId, int pageIndex, int pageSize, string order)
        {
            ReviewCommentsReturnModel ret = new ReviewCommentsReturnModel();

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            Claim idClaim = User.FindFirst("sub");

            if (idClaim == null)
            {
                ret = _commentDataService.GetSubComments(commentId, pageIndex, pageSize, order, null);
            }
            ret                   = _commentDataService.GetSubComments(commentId, pageIndex, pageSize, order, idClaim.Value);
            ret.HasNextPage       = ret.Comments.HasNextPage;
            ret.TotalCommentCount = ret.Comments.TotalCount;
            return(Ok(ret));
        }
Пример #2
0
        public ReviewCommentsReturnModel GetReviewComments(int reviewId, int pageIndex, int pageSize, string order, string currUserId)
        {
            ReviewCommentsReturnModel ret = new ReviewCommentsReturnModel();
            int TotalCommentCount         = _dbEntitySet.AsNoTracking()
                                            .Where(p => p.ReviewId == reviewId).Count();

            if (TotalCommentCount <= 0)
            {
                return(ret);
            }

            ret.Comments = _dbEntitySet.AsNoTracking()
                           .Select(p => new { Entity = p, p.CommentLikes, p.Author })
                           .Where(p => p.Entity.ReviewId == reviewId)
                           .OrderByDescending(p => p.Entity.DateUtcAdd)
                           .Skip((pageIndex - 1) * pageSize)
                           .Take(pageSize)
                           .Select(p => new ReviewCommentDisplay()
            {
                DateUtcAdd            = p.Entity.DateUtcAdd,
                DateUtcModified       = p.Entity.DateUtcModified,
                DislikeCount          = p.CommentLikes.Where(f => f.LikeStatus == LikeStatus.Dislike).Count(),
                LikeCount             = p.CommentLikes.Where(f => f.LikeStatus == LikeStatus.Like).Count(),
                IsCurrentUserDisliked = p.CommentLikes.Any(f => f.LikeStatus == LikeStatus.Dislike && f.UserInfoId == currUserId),
                IsCurrentUserLiked    = p.CommentLikes.Any(f => f.LikeStatus == LikeStatus.Like && f.UserInfoId == currUserId),
                Content    = p.Entity.Content,
                AuthorInfo = new UserInfoExtraSmall()
                {
                    AppUserId    = p.Author.AppUserId,
                    UserName     = p.Author.UName,
                    ProfileImage = p.Author.ProfilePicture.SmallPath
                },
                Id = p.Entity.Id,
            }).ToPaginatedList(pageIndex, pageSize, TotalCommentCount);

            return(ret);
        }