public void SetAppSettingValueTest() { List<string> TestLog = new List<string>(); configUpdater target = new configUpdater(TestConfigFile); const string key = "CommIdea.AccountId"; const string value = "10076061"; bool actual = target.SetAppSettingValue(key, value, TestLog.Add); Assert.AreEqual(true, actual); XmlNode node = TestConfigFile.SelectSingleNode("//appSettings"); XmlElement Elem = (XmlElement)node.SelectSingleNode(String.Format("//add[@key='{0}']", key)); string attribute = Elem.GetAttribute("value"); Assert.AreEqual(value, attribute); }
/// <summary> /// Iterates through the settings retrieved from the Installer Settings Service, and updates the selected .config file /// </summary> /// <param name="session">The session object from the installer for log file writing</param> /// <param name="settings">A list of settings retrieved from the Installer Settings Service</param> /// <param name="configUpdater">Instance of the configUpdater Class to perform the updates on the file</param> private static void UpdateConfigurationFile(Action<string> sessionLog, List<ApplicationConfigSettings.Setting> settings, string configPath) { foreach (ApplicationConfigSettings.Setting setting in settings) { configUpdater thisConfig = new configUpdater() { docName = Path.Combine(configPath, setting.configFile) }; bool result = false; switch (setting.settingType) { case ApplicationConfigSettings.SettingType.ConnectionString: result = thisConfig.SetConnectionStringValue(setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("Connection String {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: Connection String {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.AppSetting: result = thisConfig.SetAppSettingValue(setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("App Setting {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: App Setting {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.ClientEndpoint: result = thisConfig.SetClientEndpointValue(setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("Client Endpoint {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: Client Endpoint {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.ServiceEndpoint: result = thisConfig.SetServiceEndPointValue(setting.settingName, setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("Service Endpoint {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: Service Endpoint {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.ConfigurationSetting: result = thisConfig.SetCustomConfigSectionAttribute(setting.settingName, setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("Configuration Section {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: Configuration Section {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.ConfigurationValue: result = thisConfig.SetCustomConfigSectionValue(setting.settingName, setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("Configuration Value {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: Configuration Value {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.ServiceBaseAddress: result = thisConfig.SetServiceBaseAddress(setting.settingName, setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("Service Base Address {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: Service Base Address {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.XMLNodeValue: result = thisConfig.SetXMLNodeValue(setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("XML Node value {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: XML Node value {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.DefaultProxy: result = thisConfig.SetDefaultProxy(setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("Default Proxy value {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: Default Proxy value {0} update failed", setting.settingName)); } break; case ApplicationConfigSettings.SettingType.XMLNodeAttribute: result = thisConfig.SetXMLNodeAttributeValue(setting.settingName, setting.settingKey, setting.settingValue, sessionLog); if (result) { sessionLog(String.Format("XML Node value {0} updated", setting.settingName)); } else { sessionLog(String.Format("Error: XML Node value {0} update failed", setting.settingName)); } break; default: sessionLog("Error: An unknown setting was found, please check the configuration database"); break; } } }