/// <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; }
/// <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); }