Example #1
0
        /// <summary>
        /// 从配置文件读取配置
        /// </summary>
        /// <param name="sectionNodePath">配置节点的路径</param>
        /// <returns></returns>
        public static PermissionDataConfig GetConfig(string sectionNodePath)
        {
            if (config != null)
            {
                return config;
            }
            else
            {
                if (string.IsNullOrEmpty(sectionNodePath) == false)
                {
                    config = (PermissionDataConfig)ConfigurationManager.GetSection(sectionNodePath);
                }
                else
                {
                    config = (PermissionDataConfig)ConfigurationManager.GetSection("permissionData");
                }

                return config;
            }
        }
        /// <summary>
        /// 获取config节点,创建配置信息实体
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="configContext"></param>
        /// <param name="section"></param>
        /// <returns></returns>
        public object Create(object parent, object configContext, System.Xml.XmlNode section)
        {
            PermissionDataConfig config = new PermissionDataConfig();

            foreach (XmlNode applicationNode in section.ChildNodes)
            {
                PermissionDataApplication application = new PermissionDataApplication();
                application.Name = applicationNode.Attributes["name"].Value;
                application.Guid = new Guid(applicationNode.Attributes["guid"].Value);

                foreach (XmlNode moduleNode in applicationNode.ChildNodes)
                {
                    PermissionDataModule module = new PermissionDataModule();
                    module.Name = moduleNode.Attributes["name"].Value;
                    module.Guid = new Guid(moduleNode.Attributes["guid"].Value);

                    foreach (XmlNode subModuleNode in moduleNode.ChildNodes)
                    {
                        PermissionDataSubModule subModule = new PermissionDataSubModule();
                        subModule.Name = subModuleNode.Attributes["name"].Value;
                        subModule.Guid = new Guid(subModuleNode.Attributes["guid"].Value);
                        subModule.Area = XmlHelper.GetNodeValue(subModuleNode, string.Empty, "area");
                        subModule.Controller = XmlHelper.GetNodeValue(subModuleNode, string.Empty, "controller");

                        module.SubModules.Add(subModule.Guid, subModule);
                        config.AllSubModules.Add(subModule.Guid, subModule);
                    }

                    application.Modules.Add(module.Guid, module);
                }

                config.Applications.Add(application.Guid, application);
            }

            return config;
        }
Example #3
0
        /// <summary>
        /// 获取ACA对应的资源Guid
        /// </summary>
        /// <param name="areaName"></param>
        /// <param name="controllerName"></param>
        /// <returns></returns>
        /// <remarks>
        /// 通过areaName, controllerName获取其对应的子模块配置项是否存在
        /// </remarks>
        private static Guid? GetSettingItemGuid(PermissionDataConfig config, string areaName, string controllerName)
        {
            Dictionary<Guid, PermissionDataSubModule> allSubModelDic = config.AllSubModules;
            foreach (KeyValuePair<Guid, PermissionDataSubModule> subModuleKVP in allSubModelDic)
            {
                if (subModuleKVP.Value.Area == areaName && subModuleKVP.Value.Controller == controllerName)
                {
                    return subModuleKVP.Key;
                }
            }

            return null;
        }