public async Task <PagedResultDto <BlogListDto> > GetPaged(GetBlogsInput input) { var query = _blogRepository.GetAllIncluding(x => x.BlogUser) //模糊搜索博客名称 .WhereIf(!input.FilterText.IsNullOrWhiteSpace(), a => a.Name.Contains(input.FilterText)) //模糊搜索博客短名称 .WhereIf(!input.FilterText.IsNullOrWhiteSpace(), a => a.ShortName.Contains(input.FilterText)) //模糊搜索博客描述 .WhereIf(!input.FilterText.IsNullOrWhiteSpace(), a => a.Description.Contains(input.FilterText)) ; // TODO:根据传入的参数添加过滤条件 var count = await query.CountAsync(); var blogList = await query .OrderBy(input.Sorting).AsNoTracking() .PageBy(input) .ToListAsync(); var blogListDtos = ObjectMapper.Map <List <BlogListDto> >(blogList); foreach (var item in blogListDtos) { var tags = await GetTagsOfBlog(item.Id); item.Tags = string.Join(", ", tags.Select(p => p.Name).ToArray()); } return(new PagedResultDto <BlogListDto>(count, blogListDtos)); }
public async Task <ListResultDto <BlogDto> > GetBlogs(GetBlogsInput input) { var blogs = await _blogRepository.GetAllListAsync(); var dtos = blogs.MapTo <List <BlogDto> >(); return(new ListResultDto <BlogDto>(dtos)); }
/// <summary> /// 日志首页,列表页 /// </summary> /// <returns></returns> public virtual ActionResult Home(int pageSize = 8, int pageIndex = 1, SortBy?sortBy = null) { var input = new GetBlogsInput { PageSize = pageSize, PageIndex = pageIndex, SortBy = sortBy }; var list = _blogService.GetBlogs(input); return(View(list)); }
/// <summary> /// 获取所有用户分页列表 /// </summary> /// <param name="input"></param> /// <returns></returns> public PagingList <Blog> GetBlogs(GetBlogsInput input) { var query = _blogRepository.Table; if (!string.IsNullOrWhiteSpace(input.NameKeyWords)) { query = query.Where(m => m.Title.Contains(input.NameKeyWords) || m.Summary.Contains(input.NameKeyWords)); } if (input.SortBy.HasValue) { switch (input.SortBy.Value) { case SortBy.CreatedTime: query = query.OrderBy(n => n.Id); break; case SortBy.CreatedTimeDesc: query = query.OrderByDescending(n => n.Id); break; case SortBy.UpdatedTimeDesc: query = query.OrderByDescending(n => n.UpdatedTime); break; case SortBy.CommentCount: query = query.OrderByDescending(n => n.CommentCount); break; case SortBy.HitCount: query = query.OrderByDescending(n => n.HitCount); break; default: query = query.OrderByDescending(n => n.IsTop).ThenByDescending(n => n.Id); break; } } else { query = query.OrderByDescending(n => n.IsTop).ThenByDescending(n => n.Id); } var source = query .Include(n => n.Author).Skip((input.PageIndex - 1) * input.PageSize) .Take(input.PageSize); var result = new PagingList <Blog>(source, input.PageIndex, input.PageSize, query.LongCount()); return(result); }