예제 #1
0
        /// <summary>
        /// Initializes module's properties
        /// </summary>
        /// <param name="filePath">The file path.</param>
        /// <param name="name">The name.</param>
        /// <returns></returns>
        private ModuleConfig InternalGetConfig(string filePath, string name)
        {
            if (_IsInitialized.ContainsKey(name) && !HasConfigChanged(name))
            {
                return(_Configs[name]);
            }

            _Dependencies[name] = new CacheDependency(filePath, DateTime.Now);
            XmlDocument doc = new XmlDocument();

            doc.Load(filePath);
            XmlNode section = doc.SelectSingleNode("Configuration");

            if (section == null)
            {
                return(null);
            }

            ModuleConfig config = new ModuleConfig(name);

            XmlNode node = section.SelectSingleNode("Views");

            if (node == null)
            {
                return(null);
            }

            config.Views = ViewManager.CreateViewCollection(config, node);

            XmlNode settingsNode = section.SelectSingleNode("Settings");

            if (settingsNode != null)
            {
                config.Settings = SettingManager.CreateSettingsCollection(settingsNode);
            }

            // Create ACL
            XmlNode aclNode = section.SelectSingleNode("Acl");

            if (aclNode != null)
            {
                config.Acl        = new Acl();
                config.Acl.Groups = AclManager.CreateAclCollection(config, aclNode);
            }

            return(config);
        }