コード例 #1
0
        public async Task <PagedResultDto <BlogPostPublicDto> > GetListAsync(string blogSlug, PagedAndSortedResultRequestDto input)
        {
            var blog = await BlogRepository.GetBySlugAsync(blogSlug);

            var blogPosts = await BlogPostRepository.GetPagedListAsync(blog.Id, input.SkipCount, input.MaxResultCount, input.Sorting);

            return(new PagedResultDto <BlogPostPublicDto>(
                       await BlogPostRepository.GetCountAsync(blog.Id),
                       ObjectMapper.Map <List <BlogPost>, List <BlogPostPublicDto> >(blogPosts)));
        }
コード例 #2
0
        public virtual async Task <PagedResultDto <BlogPostDto> > GetListAsync(BlogPostGetListInput input)
        {
            var blogPosts = await BlogPostRepository.GetListAsync(input.Filter, input.BlogId, input.MaxResultCount, input.SkipCount, input.Sorting);

            var count = await BlogPostRepository.GetCountAsync(input.Filter);

            var dtoList = ObjectMapper.Map <List <BlogPost>, List <BlogPostDto> >(blogPosts);

            return(new PagedResultDto <BlogPostDto>(count, dtoList));
        }
コード例 #3
0
    public virtual async Task <PagedResultDto <BlogPostPublicDto> > GetListAsync([NotNull] string blogSlug, BlogPostGetListInput input)
    {
        var blog = await BlogRepository.GetBySlugAsync(blogSlug);

        var blogPosts = await BlogPostRepository.GetListAsync(null, blog.Id, input.AuthorId, input.TagId,
                                                              BlogPostStatus.Published, input.MaxResultCount,
                                                              input.SkipCount, input.Sorting);

        return(new PagedResultDto <BlogPostPublicDto>(
                   await BlogPostRepository.GetCountAsync(blogId: blog.Id, tagId: input.TagId,
                                                          statusFilter: BlogPostStatus.Published, authorId: input.AuthorId),
                   ObjectMapper.Map <List <BlogPost>, List <BlogPostPublicDto> >(blogPosts)));
    }
コード例 #4
0
        public virtual async Task <PagedResultDto <BlogPostDto> > GetListAsync(PagedAndSortedResultRequestDto input)
        {
            if (input.Sorting.IsNullOrEmpty())
            {
                input.Sorting = nameof(BlogPost.CreationTime) + " desc";
            }

            var blogPosts = await BlogPostRepository.GetPagedListAsync(input.SkipCount, input.MaxResultCount, input.Sorting, includeDetails : true);

            var count = await BlogPostRepository.GetCountAsync();

            return(new PagedResultDto <BlogPostDto>(
                       count,
                       ObjectMapper.Map <List <BlogPost>, List <BlogPostDto> >(blogPosts)));
        }
コード例 #5
0
    public virtual async Task <PagedResultDto <BlogPostListDto> > GetListAsync(BlogPostGetListInput input)
    {
        var blogs = (await BlogRepository.GetListAsync()).ToDictionary(x => x.Id);

        var blogPosts = await BlogPostRepository.GetListAsync(input.Filter, input.BlogId, input.MaxResultCount, input.SkipCount, input.Sorting);

        var count = await BlogPostRepository.GetCountAsync(input.Filter);

        var dtoList = blogPosts.Select(x =>
        {
            var dto      = ObjectMapper.Map <BlogPost, BlogPostListDto>(x);
            dto.BlogName = blogs[x.BlogId].Name;

            return(dto);
        }).ToList();

        return(new PagedResultDto <BlogPostListDto>(count, dtoList));
    }