private void UpdateConfigFile(ModelBuilderSettings settings) { if (!settings.SaveConnectionStringInAppConfig) { return; } var connectionString = ConnectionManager.InjectEFAttributesIntoConnectionString( settings.AppConfigConnectionString, settings.RuntimeProviderInvariantName); _configFileUtils.GetOrCreateConfigFile(); var existingConnectionStrings = ConnectionManager.GetExistingConnectionStrings(_configFileUtils); string existingConnectionString; if (existingConnectionStrings.TryGetValue(settings.AppConfigConnectionPropertyName, out existingConnectionString) && string.Equals(existingConnectionString, connectionString)) { // An element with the same name and connectionString already exists - no need to update. // This can happen if the user chooses an existing connection and connection name on the WizardPageDbConfig page. return; } var configXml = _configFileUtils.LoadConfig(); ConnectionManager.AddConnectionStringElement( configXml, settings.AppConfigConnectionPropertyName, connectionString, settings.RuntimeProviderInvariantName); _configFileUtils.SaveConfig(configXml); }
public void AddConnectionStringElement_appends_connection_string() { var configXml = new XmlDocument(); configXml.LoadXml(@"<configuration> <connectionStrings> <add name=""myModel"" connectionString=""Data Source=(localdb)\v11.0;"" providerName=""System.Data.SqlClient"" /> </connectionStrings> </configuration>"); ConnectionManager.AddConnectionStringElement(configXml, "MyDb", "db=mydb", "fancyDb"); var addElement = configXml.SelectSingleNode("/configuration/connectionStrings/add[@name='MyDb']") as XmlElement; Assert.NotNull(addElement); Assert.Equal("db=mydb", addElement.GetAttribute("connectionString")); Assert.Equal("fancyDb", addElement.GetAttribute("providerName")); }
public void AddConnectionStringElement_throws_if_config_invalid() { var configContents = new[] { @"<configuration1 />", @"<configuration xmlns=""fakexmlns""/>", @"<ns:configuration xmlns:ns=""fakexmlns""/>" }; foreach (var config in configContents) { var configXml = new XmlDocument(); configXml.LoadXml(config); Assert.Equal( Assert.Throws <XmlException>( () => ConnectionManager.AddConnectionStringElement(configXml, "MyDb", "db=mydb", "fancyDb")).Message, Resources.ConnectionManager_CorruptConfig); } }