public void Save(PluginsConfiguration pluginsConfiguration) { using (FileStream file = File.Exists(SettingsPath) ? File.Open(SettingsPath, FileMode.Truncate) : File.Create(SettingsPath)) { _xmlSerializer.Serialize(file, pluginsConfiguration); } }
/// <summary> /// Cambia un valor de configuración de un plugin /// </summary> public void SetConfiguration(string plugin, string key, string value) { if (!string.IsNullOrWhiteSpace(plugin) && !string.IsNullOrWhiteSpace(key)) { // Elimina la configuración del plugin para esa clave for (int index = PluginsConfiguration.Count - 1; index >= 0; index--) { if (PluginsConfiguration[index].plugin.Equals(plugin, StringComparison.CurrentCultureIgnoreCase) && PluginsConfiguration[index].key.Equals(key, StringComparison.CurrentCultureIgnoreCase)) { PluginsConfiguration.RemoveAt(index); } } // Añade la configuración PluginsConfiguration.Add((plugin, key, value)); } }
/// <summary> /// Carga la configuración de los plugins /// </summary> private void LoadPluginsCongiguration(string setup) { // Limpia la configuración PluginsConfiguration.Clear(); // Asigna la configuración if (!string.IsNullOrWhiteSpace(setup)) { string [] parts = setup.Split(SetupSeparator); for (int index = 0; index < parts.Length; index += 3) { if (parts.Length > index + 3 && !string.IsNullOrWhiteSpace(parts[index]) && !string.IsNullOrWhiteSpace(parts[index + 1])) { PluginsConfiguration.Add((parts[index], parts[index + 1], parts[index + 2])); } } } }