Example #1
0
        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);
        }