public ActionResult List(int pageIndex = 1, int pageSize = 15) { //var query = _articleRepository.Table; var setting = GetSetting(); if (setting != null) { pageSize = setting.ManagePageSize; } var request = new GetPageArticlesRequest(pageIndex, pageSize); #region Filter var title = Request["title"]; var category = Request["category"]; var state = Request["state"]; int cId; int s; if (!string.IsNullOrEmpty(title)) { request.Title = title; ViewBag.ArticleTitle = title; } if (int.TryParse(category, out cId) && cId != 0) { request.CategoryId = cId; ViewBag.CagegotyId = cId; } if (int.TryParse(state, out s) && s != 0) { request.Status = s; ViewBag.State = s; } //排序 var field = Request["field"]; var sort = Request["sort"]; var createTimeSort = "desc"; if (field != null && sort != null) { if (field == "CreateTime" && (sort == "asc" || sort == "desc")) { request.Sort = new Sort("CreateTime", sort == "asc" ? SortMode.Asc : SortMode.Desc); createTimeSort = sort == "asc" ? "desc" : "asc"; } } ViewBag.CreateTimeSort = createTimeSort; #endregion var response = _articleService.GetPageArticles(request); ViewBag.Categories = _categoryRepository.FindAll(); return(View(response.Pages)); }
public GetPagesResponse <Article> GetPageArticles(GetPageArticlesRequest request) { var query = _repository.Table .HasWhere(request.Title, p => p.Title.Contains(request.Title)) .HasWhere(request.CategoryId, p => p.CategoryId == request.CategoryId) .HasWhere(request.Status, p => p.State == request.Status) .Where(p => !p.IsDel); //排序 if (request.Sort != null) { switch (request.Sort.PropertyName) { case "CreateTime": query = request.Sort.SortMode == SortMode.Asc ? query.OrderBy(p => p.CreateTime) : query.OrderByDescending(p => p.CreateTime); break; default: query = query.OrderBy(p => p.Id); break; } } else { query = query.OrderByDescending(p => p.IsTop).ThenByDescending(p => p.Sort).ThenByDescending(p => p.CreateTime); } var page = query.ToPagedList(request.PageIndex, request.PageSize, true); var response = new GetPagesResponse <Article> { IsSuccess = true, Message = "获取成功!", Pages = page }; return(response); }