Пример #1
0
        public async Task <IActionResult> BlogPostList()
        {
            var blogPostList = await _blogPostRepository.GetBlogPostList();

            var blogPostListDto = new BlogPostListDto
            {
                BlogPosts = blogPostList.ToList()
            };

            return(Ok(blogPostListDto));
        }
Пример #2
0
        /// <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);
        }