public ActionResult GetGridJson(ArticleCateSearchView searchView, int page = 1) { var data = _ArticleCategoryService.GetCateList(searchView, page, PageSize); //取出分类 var parentIds = data.Where(w => w.ParentId != null).Select(u => u.ParentId).Distinct().ToArray(); Dictionary <string, string> cateDictory = new Dictionary <string, string>(); if (parentIds.Any()) { cateDictory = _ArticleCategoryService.GetCates(parentIds, true).ToDictionary(k => k.Code, v => v.Text); } if (data.Any()) { data.ForEach(cate => { if (cateDictory.Any() && !cate.ParentId.IsEmpty()) { cate.Category = cateDictory.TryGetValue(cate.ParentId); } }); } return(Content(new { rows = data, total = data.PageCount, page = data.PageIndex, records = data.TotalCount }.ToJson())); }
public List <ArticleCategory> GetList(ArticleCateSearchView searchView) { var expression = base.GetFilterEnabled(); if (!string.IsNullOrEmpty(searchView.Keyword)) { expression = expression.And(t => t.Title.Contains(searchView.Keyword)); expression = expression.Or(t => t.ShortTitle.Contains(searchView.Keyword)); } return(_Respository.Get(expression, o => o.OrderBy(t => t.SortCode)).ToList()); }
public PagedList <ArticleCateDetailView> GetCateList(ArticleCateSearchView searchView, int pageIndex = 1, int pageSize = 20) { var expression = base.GetFilterEnabled(); var order = base.Order(); if (searchView.ParentId != null) { searchView.ParentId = searchView.ParentId.Where(w => !w.IsEmpty()).ToArray(); if (searchView.ParentId.Any()) { expression = expression.And(w => searchView.ParentId.Contains(w.ParentId)); } } if (searchView.IsRemmand.HasValue) { order = o => o.OrderBy(w => w.SortCode); } var data = _Respository.GetPagedList(u => new ArticleCateDetailView { Id = u.Id, Title = u.Title, CreatorTime = u.CreatorTime, ParentId = u.ParentId, ShortTitle = u.ShortTitle, CoverUrl = u.CoverUrl, ReadCount = u.ReadCount }, expression, pageIndex, pageSize, order); if (searchView.IsRemmand.HasValue) { var parentIds = data.Select(u => u.Id).ToArray(); var articles = SkyCore.GlobalProvider.CoreContextProvider.GetService <IArticleService>().GetTopArticles(ArticleTopEnum.NewHotArticle, 14, parentIds); data.ForEach(cate => { cate.ArticleDetails = articles.Where(w => w.CategoryId == cate.Id).ToList(); }); } return(data); }