Ejemplo n.º 1
0
        /// <summary>
        /// 分页查询文章列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <ServiceResult <PagedList <QueryPostDto> > > QueryPostAsync(PaginInput input)
        {
            return(await _blogCacheService.QueryPostAsync(input, async() =>
            {
                var result = new ServiceResult <PagedList <QueryPostDto> >();

                var count = await _postRepository.GetCountAsync();

                var list = _postRepository.OrderByDescending(x => x.CreationTime)
                           .PageByIndex(input.Page, input.Limit)
                           .Select(x => new PostBriefDto
                {
                    Title = x.Title,
                    Url = x.Url,
                    Year = x.CreationTime.Year,
                    CreationTime = x.CreationTime.TryToDateTime()
                }).GroupBy(x => x.Year)
                           .Select(x => new QueryPostDto
                {
                    Year = x.Key,
                    Posts = x.ToList()
                }).ToList();
                result.IsSuccess(new PagedList <QueryPostDto>(count.TryToInt(), list));
                return result;
            }));
        }
Ejemplo n.º 2
0
 public async Task <ServiceResult <PagedList <QueryPostForAdminDto> > > QueryPostsForAdminAsync([FromQuery] PaginInput input)
 {
     return(await _blogService.QueryPostsForAdminAsync(input));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 分页查询文章列表
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 public async Task <ServiceResult <PagedList <QueryPostDto> > > QueryPostAsync(PaginInput input, Func <Task <ServiceResult <PagedList <QueryPostDto> > > > factory)
 {
     return(await Cache.GetOrAddAsync(KEY_QueryPosts.FormatWith(input.Page, input.Limit), factory, CacheStrategy.ONE_DAY));
 }