Esempio n. 1
0
        public void AddModule(ConfigSection module)
        {
            foreach (ConfigLine line in module.Lines)
            {
                if (line.Content != "")
                {
                    _lines.Add(line.Content);
                }
            }

            WriteToFile();
        }
Esempio n. 2
0
        /// <summary>
        /// Writes all of the provided lines into the document.  It will clear the document of all existing lines.
        /// </summary>
        /// <param name="lines"></param>
        public void WriteAllLines(string[] lines)
        {
            ConfigSection configSection = ConfigSection.Empty;

            CleanDocument();

            foreach (string line in lines)
            {
                string lineTrim = line.Trim();

                // Checks if the line is a section identifier.
                if (lineTrim.StartsWith("[") && lineTrim.EndsWith("]"))
                {
                    string sectionName = lineTrim.TrimStart('[').TrimEnd(']');

                    _sections.Add(configSection);

                    configSection = new ConfigSection(sectionName);

                    continue;
                }

                // Checks if the line is a setting.
                if (line.Contains("="))
                {
                    int separatorCharIndex = line.IndexOf('=');

                    string settingName = line.Substring(0, separatorCharIndex);
                    string settingValue = line.Substring(separatorCharIndex + 1, line.Length - separatorCharIndex - 1);
                    configSection.Lines.Add((new ConfigSetting(settingName, settingValue)));

                    continue;
                }

                // Line is not a section identifier or setting.
                configSection.Lines.Add(new ConfigLine(line));
            }

            _sections.Add(configSection);
        }
Esempio n. 3
0
        /// <summary>
        /// Sets a setting within the specified section.  Creates a new setting and/or section if not present.
        /// </summary>
        /// <param name="sectionName"></param>
        /// <param name="settingName"></param>
        /// <param name="settingValue"></param>
        public void SetValue(string sectionName, string settingName, string settingValue)
        {
            ConfigSection configSection = ConfigSection.Empty;
            bool sectionNotFound = true;

            foreach (ConfigSection section in _sections)
            {
                if (section.Name == sectionName)
                {
                    configSection = section;
                    sectionNotFound = false;
                    break;
                }
            }

            // If section is not present, create it.
            if (sectionNotFound)
            {
                configSection = new ConfigSection(sectionName);
                _sections.Add(configSection);
            }

            // Try to find the setting within the section.
            foreach (ConfigLine line in configSection.Lines)
            {
                if ((line is ConfigSetting) && (line as ConfigSetting).Name == settingName)
                {
                    (line as ConfigSetting).Value = settingValue;
                    return;
                }
            }

            // Only reachable if the setting was not found, so create a new one.
            configSection.AddLine(new ConfigSetting(settingName, settingValue));
        }