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 }); }