/// <summary> /// 获取节点列表包括归档节点 /// </summary> /// <param name="nodesId">多个ID用“,”分割</param> /// <param name="isShowArchiving">是否显示归档节点</param> /// <returns></returns> public IList <NodesEntity> GetNodeList(string nodesId, bool isShowArchiving = false) { if (!DataValidator.IsValidId(nodesId)) { return(new List <NodesEntity>()); } Expression <Func <NodesEntity, bool> > predicate = p => true; if (!string.IsNullOrEmpty(nodesId)) { var arrNodeID = nodesId.Split(','); predicate = predicate.And(p => arrNodeID.Contains(p.NodeID.ToString())); } if (!isShowArchiving) { predicate = predicate.And(p => p.PurviewType != 3); } SortModelField sortModelField1 = new SortModelField() { SortName = "RootID", IsDESC = false }; SortModelField sortModelField2 = new SortModelField() { SortName = "OrderSort", IsDESC = false }; SortModelField[] orderByExpression = new SortModelField[2]; orderByExpression[0] = sortModelField1; orderByExpression[1] = sortModelField2; IList <NodesEntity> nodesList = LoadListAll(predicate, orderByExpression); return(nodesList); }
/// <summary> /// 按根节点获取第一级子节点列表 /// </summary> /// <param name="rootId"></param> /// <returns></returns> public IList <NodesEntity> GetNodesListByRootId(int rootId) { Expression <Func <NodesEntity, bool> > predicate = p => p.RootID == rootId && p.ParentID > 0; SortModelField sortModelField = new SortModelField() { SortName = "OrderSort", IsDESC = false }; SortModelField[] orderByExpression = new SortModelField[1]; orderByExpression[0] = sortModelField; IList <NodesEntity> nodesList = LoadListAll(predicate, orderByExpression); return(nodesList); }
/// <summary> /// 按父节点ID获取子节点列表 /// </summary> /// <param name="parentId"></param> /// <returns></returns> public IList <NodesEntity> GetNodesListByParentId(int parentId) { Expression <Func <NodesEntity, bool> > predicate = p => p.ParentID == parentId; SortModelField sortModelField1 = new SortModelField() { SortName = "RootID", IsDESC = false }; SortModelField sortModelField2 = new SortModelField() { SortName = "OrderSort", IsDESC = false }; SortModelField[] orderByExpression = new SortModelField[2]; orderByExpression[0] = sortModelField1; orderByExpression[1] = sortModelField2; IList <NodesEntity> nodesList = LoadListAll(predicate, orderByExpression); return(nodesList); }
/// <summary> /// 获取所有的节点列表(包含容器栏目、专题栏目、单页节点和外链),并添加 '所有栏目'为根节点 /// </summary> /// <param name="nodeType">节点类型</param> /// <param name="isShowArchiving">是否显示归档类型的节点</param> /// <param name="isAddAll">是否添加'所有栏目'为根节点</param> /// <returns></returns> public IList <NodesEntity> GetNodeList(NodeType nodeType = NodeType.None, bool isShowArchiving = false, bool isAddAll = false) { Expression <Func <NodesEntity, bool> > predicate = p => true; if (nodeType != NodeType.None) { predicate = predicate.And(p => p.NodeType == (int)nodeType); } if (!isShowArchiving) { predicate = predicate.And(p => p.PurviewType != 3); } SortModelField sortModelField1 = new SortModelField() { SortName = "RootID", IsDESC = false }; SortModelField sortModelField2 = new SortModelField() { SortName = "OrderSort", IsDESC = false }; SortModelField[] orderByExpression = new SortModelField[2]; orderByExpression[0] = sortModelField1; orderByExpression[1] = sortModelField2; IList <NodesEntity> nodesList = LoadListAll(predicate, orderByExpression); if (isAddAll) { NodesEntity item = new NodesEntity(); item.NodeName = "所有栏目"; item.NodeID = -1; item.Depth = 0; item.ParentPath = "0"; item.NextID = 0; item.Child = 0; item.NodeType = (int)(NodeType.Container); item.NodeDir = ""; nodesList.Insert(0, item); } return(nodesList); }
/// <summary> /// 按父节点路径获取子节点列表,按Depth排序。 /// </summary> /// <param name="parentPath">多个ID用“,”分割</param> /// <returns></returns> public IList <NodesEntity> GetNodesListInParentPath(string parentPath) { if (!DataValidator.IsValidId(parentPath)) { return(new List <NodesEntity>()); } Expression <Func <NodesEntity, bool> > predicate = p => true; if (!string.IsNullOrEmpty(parentPath)) { var arrNodeID = parentPath.Split(','); predicate = predicate.And(p => arrNodeID.Contains(p.NodeID.ToString())); } SortModelField sortModelField = new SortModelField() { SortName = "Depth", IsDESC = false }; SortModelField[] orderByExpression = new SortModelField[2]; orderByExpression[0] = sortModelField; IList <NodesEntity> nodesList = LoadListAll(predicate, orderByExpression); return(nodesList); }