private Configuration ReadConfiguration() { if (configuration != null) { return(configuration); } try { Properties properties = new Properties(); properties.Load(CONFIG_BASIC_PROPS_FILE); string cname = properties.GetProperty(CONFIG_PROP_NAME); Assert.False(String.IsNullOrWhiteSpace(cname)); string cfile = properties.GetProperty(CONFIG_PROP_FILENAME); Assert.False(String.IsNullOrWhiteSpace(cfile)); string version = properties.GetProperty(CONFIG_PROP_VERSION); Assert.False(String.IsNullOrWhiteSpace(version)); LogUtils.Info(String.Format("Reading Configuration: [file={0}][version={1}]", cfile, version)); using (FileReader reader = new FileReader(cfile)) { reader.Open(); XmlConfigParser parser = new XmlConfigParser(); ConfigurationSettings settings = new ConfigurationSettings(); settings.DownloadOptions = EDownloadOptions.LoadRemoteResourcesOnStartup; parser.Parse(cname, reader, Version.Parse(version), settings, CONFIG_PASSWORD); configuration = parser.GetConfiguration(); return(configuration); } } catch (Exception ex) { LogUtils.Error(ex); throw ex; } }
/// <summary> /// Resolve the search string for the specified abbreviation tag /// </summary> /// <param name="name">Search string</param> /// <param name="nodeName">Config node name</param> /// <param name="abbr">Abbreviation tag</param> /// <returns>Resolved name</returns> private static ResolvedName ResolveName(string name, string nodeName, char abbr, ConfigurationSettings settings) { ResolvedName resolved = new ResolvedName(); switch (abbr) { case ConfigAttributesNode.NODE_ABBREVIATION: resolved.AbbrReplacement = settings.AttributesNodeName; break; case ConfigParametersNode.NODE_ABBREVIATION: resolved.AbbrReplacement = settings.ParametersNodeName; break; case ConfigPropertiesNode.NODE_ABBREVIATION: resolved.AbbrReplacement = settings.PropertiesNodeName; break; case ConfigListNode <ConfigValueNode> .NODE_ABBREVIATION: resolved.AbbrReplacement = ConfigListNode <ConfigValueNode> .NODE_NAME; break; } resolved.Abbr = abbr; string[] parts = name.Split(abbr); string nname = parts[0]; string cname = parts[1]; if (String.IsNullOrWhiteSpace(nname) || (nname.Length == 1 && nname[0] == ConfigurationSettings.NODE_SEARCH_WILDCARD)) { resolved.Name = nodeName; } else { resolved.Name = nname; } if (!String.IsNullOrWhiteSpace(cname)) { resolved.ChildName = cname; } else { resolved.ChildName = null; } return(resolved); }