public async Task <IActionResult> BlogPostList() { var blogPostList = await _blogPostRepository.GetBlogPostList(); var blogPostListDto = new BlogPostListDto { BlogPosts = blogPostList.ToList() }; return(Ok(blogPostListDto)); }
/// <summary> /// Prepare blog post seach dto /// </summary> /// <param name="urlHelper">UrlHelper</param> /// <param name="filteringDto">BlogPostForFilteringDto</param> /// <returns>BlogPostListDto</returns> public virtual BlogPostListDto PrepareBlogPostSearchDto(IUrlHelper urlHelper, BlogPostForFilteringDto filteringDto) { if (filteringDto == null) { throw new ArgumentNullException(nameof(filteringDto)); } var dto = new BlogPostListDto(); if (filteringDto.PageSize <= 0) { filteringDto.PageSize = 10; } if (filteringDto.PageNumber <= 0) { filteringDto.PageNumber = 1; } IPagedList <BlogPost> blogPosts = _blogService.GetAllBlogPostsByTag(filteringDto.Tag, filteringDto.PageNumber - 1, filteringDto.PageSize); dto.BlogPostPagingContext.LoadPagedList(blogPosts); dto.BlogPosts = blogPosts .Select(x => { var blogPostDto = new BlogPostDto(); PrepareBlogPostResponse(blogPostDto, x, false); blogPostDto.PostWithCommentsLink = CreateLink(urlHelper, "GetPostWithComments", new { blogPostDto.Id }, "postWithCommentsPage", HttpMethod.Get.ToString()); return(blogPostDto); }) .ToList(); dto.Links.Add(CreateLink(urlHelper, "GetBlogPostSearch", new BlogPostForPagingDto { PageNumber = dto.BlogPostPagingContext.PageNumber, PageSize = dto.BlogPostPagingContext.PageSize }, "self", HttpMethod.Get.ToString())); if (dto.BlogPostPagingContext.HasPreviousPage) { dto.Links.Add(CreateLink(urlHelper, "GetBlogPostSearch", new BlogPostForPagingDto { PageNumber = dto.BlogPostPagingContext.PreviousPageNumber, PageSize = dto.BlogPostPagingContext.PageSize }, "previousPage", "GET")); } if (dto.BlogPostPagingContext.HasNextPage) { dto.Links.Add(CreateLink(urlHelper, "GetBlogPostSearch", new BlogPostForPagingDto { PageNumber = dto.BlogPostPagingContext.NextPageNumber, PageSize = dto.BlogPostPagingContext.PageSize }, "nextPage", "GET")); } return(dto); }