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