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