/// <summary>
        /// 获取相应层级子模块
        /// </summary>
        /// <returns></returns>
        public SysModule[] GetSubs()
        {
            int        currLevel = this.PathLevel.GetValueOrDefault();
            ICriterion crit      = Expression.Gt("PathLevel", currLevel);

            return(SysModule.FindAll(crit));
        }
        /// <summary>
        /// 获取相应层级子模块
        /// </summary>
        /// <param name="level">当前层级向下层级</param>
        /// <returns></returns>
        public SysModule[] GetSubs(int level)
        {
            int currLevel = this.PathLevel.GetValueOrDefault();
            int maxLevel  = this.PathLevel.GetValueOrDefault() + level;

            DetachedCriteria crits = DetachedCriteria.For <SysModule>();

            crits.Add(Expression.Gt("PathLevel", currLevel));
            crits.Add(Expression.Le("PathLevel", maxLevel));

            return(SysModule.FindAll(crits));
        }
        /// <summary>
        /// 由权限列表获取所有用户模块
        /// </summary>
        /// <param name="authList"></param>
        /// <returns></returns>
        public static IList <SysModule> RetrieveAllModulesFromAuthList(IList <SysAuth> authList)
        {
            IList <SysModule> ents = new List <SysModule>();

            List <string> ids = new List <string>();

            foreach (SysAuth auth in authList)
            {
                // 类型为1 为入口权限(Application或Module)
                if (auth.Type == 1 && !String.IsNullOrEmpty(auth.ModuleID))
                {
                    ids.Add(auth.ModuleID);
                }
            }

            ICriterion hqlCriterion = Expression.In("ModuleID", ids);

            ents = SysModule.FindAll(hqlCriterion);

            return(ents);
        }
Esempio n. 4
0
        /// <summary>
        /// 获取指定应用区间级别的模块
        /// </summary>
        /// <param name="from"></param>
        /// <param name="to"></param>
        /// <returns></returns>
        public IList <SysModule> GetModulesByLevel(int from, int to)
        {
            IList <SysModule> mdls = new List <SysModule>();

            if (from >= 0)
            {
                if (from == to)
                {
                    return(SysModule.FindAllByProperty("PathLevel", from));
                }
                else if (from < to)
                {
                    DetachedCriteria crits = DetachedCriteria.For <SysModule>();

                    crits.Add(Expression.Eq("ApplicationID", this.ApplicationID));
                    crits.Add(Expression.Ge("PathLevel", from));
                    crits.Add(Expression.Le("PathLevel", to));

                    return(SysModule.FindAll(crits));
                }
            }

            return(mdls);
        }