public ActionResult GetPlistChildren(GetPlistChildren requestModel)
        {
            if (requestModel.ParentId == Guid.Empty)
            {
                requestModel.ParentId = null;
            }
            if (!ModelState.IsValid)
            {
                return(ModelState.ToJsonResult());
            }
            foreach (var filter in requestModel.Filters)
            {
                PropertyState property;
                if (!base.EntityType.TryGetProperty(filter.field, out property))
                {
                    throw new ValidationException("意外的Catalog实体类型属性" + filter.field);
                }
            }
            int pageIndex = requestModel.PageIndex;
            int pageSize  = requestModel.PageSize;
            IQueryable <CatalogTr> queryable = null;

            if (requestModel.IncludeDescendants.HasValue && requestModel.IncludeDescendants.Value)
            {
                queryable = AcDomain.CatalogSet.Where(a => a != CatalogState.VirtualRoot).Select(a => CatalogTr.Create(a)).AsQueryable().Where(a => a.Code.Contains(requestModel.ParentCode));
            }
            else
            {
                if (requestModel.ParentCode == string.Empty)
                {
                    requestModel.ParentCode = null;
                }
                queryable = AcDomain.CatalogSet.Where(a => a != CatalogState.VirtualRoot && string.Equals(a.ParentCode, requestModel.ParentCode, StringComparison.OrdinalIgnoreCase)).Select(a => CatalogTr.Create(a)).AsQueryable();
            }
            foreach (var filter in requestModel.Filters)
            {
                queryable = queryable.Where(filter.ToPredicate(), filter.value);
            }
            var list = queryable.OrderBy(requestModel.SortField + " " + requestModel.SortOrder).Skip(pageIndex * pageSize).Take(pageSize);

            return(this.JsonResult(new MiniGrid <CatalogTr> {
                total = queryable.Count(), data = list
            }));
        }
        public ActionResult GetPlistChildren(GetPlistChildren requestModel)
        {
            if (requestModel.ParentId == Guid.Empty)
            {
                requestModel.ParentId = null;
            }
            if (!ModelState.IsValid)
            {
                return ModelState.ToJsonResult();
            }
            foreach (var filter in requestModel.Filters)
            {
                PropertyState property;
                if (!base.EntityType.TryGetProperty(filter.field, out property))
                {
                    throw new ValidationException("意外的Catalog实体类型属性" + filter.field);
                }
            }
            int pageIndex = requestModel.PageIndex;
            int pageSize = requestModel.PageSize;
            IQueryable<CatalogTr> queryable = null;
            if (requestModel.IncludeDescendants.HasValue && requestModel.IncludeDescendants.Value)
            {
                queryable = AcDomain.CatalogSet.Where(a => a != CatalogState.VirtualRoot).Select(a => CatalogTr.Create(a)).AsQueryable().Where(a => a.Code.Contains(requestModel.ParentCode));
            }
            else
            {
                if (requestModel.ParentCode == string.Empty)
                {
                    requestModel.ParentCode = null;
                }
                queryable = AcDomain.CatalogSet.Where(a => a != CatalogState.VirtualRoot && string.Equals(a.ParentCode, requestModel.ParentCode, StringComparison.OrdinalIgnoreCase)).Select(a => CatalogTr.Create(a)).AsQueryable();
            }
            foreach (var filter in requestModel.Filters)
            {
                queryable = queryable.Where(filter.ToPredicate(), filter.value);
            }
            var list = queryable.OrderBy(requestModel.SortField + " " + requestModel.SortOrder).Skip(pageIndex * pageSize).Take(pageSize);

            return this.JsonResult(new MiniGrid<CatalogTr> { total = queryable.Count(), data = list });
        }