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