示例#1
0
        public async Task <IActionResult> GetThreadPosts(int forumThreadId, [FromQuery] ForumPostsParams forumPostsParams)
        {
            try
            {
                var posts = await context.GetForumThreadPosts(forumThreadId, forumPostsParams);

                Response.AddPagination(posts.CurrentPage, posts.PageSize, posts.TotalCount,
                                       posts.TotalPages);

                return(Ok(mapper.Map <IEnumerable <ForumPostPreviewDto> >(posts)));
            }
            catch (ArgumentNullException e)
            {
                var paramName = e.ParamName;
                if (paramName != null)
                {
                    return(NotFound(paramName));
                }

                throw;
            }
        }
示例#2
0
        public async Task <PagedList <ForumPost> > GetForumThreadPosts(int forumThreadId, ForumPostsParams forumPostsParams)
        {
            var posts = context
                        .ForumPosts
                        .Where(p => p.ForumThreadId == forumThreadId)
                        .Include(p => p.Author)
                        .AsQueryable();

            if (posts == null)
            {
                throw new ArgumentNullException(nameof(forumThreadId));
            }

            return(await PagedList <ForumPost> .CreateAsync(posts, forumPostsParams.PageNumber,
                                                            forumPostsParams.PageSize));
        }