public void AddModule(ConfigSection module) { foreach (ConfigLine line in module.Lines) { if (line.Content != "") { _lines.Add(line.Content); } } WriteToFile(); }
/// <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); }
/// <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)); }