Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        /// <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);
        }