/// <summary> /// 取得列表、部分內容 /// </summary> /// <param name="model">The model.</param> /// <returns></returns> public CiResult <ItemPageResult> GetPartialList(ItemPageModel model) { var result = new CiResult <ItemPageResult>(); try { //search if (!string.IsNullOrWhiteSpace(model.SearchString)) { model.SearchString = HttpUtility.UrlDecode(model.SearchString); model.SearchString = _Check.RelpaceBadCharacters(model.SearchString); //取structure: 包含Article, 排除Banner、Category if (string.IsNullOrEmpty(model.StructureJson) && !string.IsNullOrEmpty(model.SearchString)) { var articleStructure = structureService.GetList(ItemType.Article, new List <ItemType> { ItemType.Banner, ItemType.Category }); model.StructureJson = _Json.ModelToJson(articleStructure.Data.Select(x => x.ID)); } } //有routeName: 先取分頁參數 if (!string.IsNullOrEmpty(model.RouteName)) { var listResult = GetList(model.RouteName); if (listResult.IsSuccess) { model.StructureJson = listResult.Data.ItemPageModel.StructureJson; model.CategoryJson = listResult.Data.ItemPageModel.CategoryJson; model.SortColumn = listResult.Data.ItemPageModel.SortColumn; } else { result.Message = listResult.Message; return(result); } } if (string.IsNullOrEmpty(model.StructureJson)) { result.Message = "no StructureJson"; return(result); } var stuctureIDs = _Json.JsonToModel <List <Guid> >(model.StructureJson); var categoryIDs = _Json.JsonToModel <List <Guid> >(model.CategoryJson); var listData = service.GetListView( new PageParameter { IsPaged = model.IsPaged, CurrentPage = model.CurrentPage, PageSize = model.PageSize, SortColumn = model.SortColumn, IsDescending = model.IsDescending, DataLevel = model.DataLevel }, new ItemFilter { StructureIDs = stuctureIDs, CategoryIDs = categoryIDs, ExceptID = model.ExceptID, CoverType = model.CoverType, SearchString = model.SearchString, SearchType = model.SearchType, LangType = ApplicationHelper.DefaultLanguage, SelectEnabled = true, }); // Html Decode foreach (var item in listData.Data) { item.ItemLanguage.Content = HttpUtility.HtmlDecode(item.ItemLanguage.Content); item.ItemLanguage.TemplateText = HttpUtility.HtmlDecode(item.ItemLanguage.TemplateText); } var resultModel = new ItemPageResult { DataResult = new PageModel <ItemWebViewModel> { CurrentPage = listData.CurrentPage, TotalCount = listData.TotalCount, PageCount = listData.PageCount, DataStart = listData.DataStart, DataEnd = listData.DataEnd, Data = listData.Data.Select(x => TransModel(x)).ToList(), }, ItemPageModel = model }; result.Data = resultModel; result.IsSuccess = true; } catch (Exception e) { result.Message = e.Message; } return(result); }