public static void UpdateDbConnectionString(GetDbConnectionStringMessage m) { DataConnectionDialog dcd = new DataConnectionDialog(); DataProvider dataProvider = DataProvider.SqlDataProvider; DataSource dataSource = new DataSource(dataProvider.Name, dataProvider.DisplayName); dataSource.Providers.Add(dataProvider); dcd.DataSources.Add(dataSource); dcd.SelectedDataSource = dataSource; dcd.SelectedDataProvider = dataProvider; if (m.ConnectionString != string.Empty) { dcd.ConnectionString = m.ConnectionString; } if (DataConnectionDialog.Show(dcd) == System.Windows.Forms.DialogResult.OK) { //allow multiple active result sets (one to get the wrong value-ids, the other to get the value m.ConnectionString = dcd.ConnectionString + ";MultipleActiveResultSets=True;"; } }
/// <summary> /// Asks the user for the new connection string and updates it in the user settings /// </summary> public static void UpdateDbConnectionString(Action succeededHandler, Action <Exception> failedHandler) { Database existingDb = GetExistingDatabase(); string connectionString = string.Empty; if (existingDb != null) { using (var secureConnectionString = existingDb.EncryptedConnectionString.DecryptString()) { connectionString = secureConnectionString.ToInsecureString(); } } var m = new GetDbConnectionStringMessage() { ConnectionString = connectionString }; UpdateDbConnectionString(m); if (m.ConnectionString == string.Empty) { //No connection string was provided, shut down and ask next time again Application.Current.Shutdown(); return; } try { string encryptedConnectionString; using (var secureConnectionString = m.ConnectionString.ToSecureString()) { encryptedConnectionString = secureConnectionString.EncryptString(); } if (existingDb != null) { UpdateExistingDb(existingDb, encryptedConnectionString); } else { AddNewDb(encryptedConnectionString); } succeededHandler(); } catch (Exception e) { failedHandler(e); //MessageBox.Show(string.Format("An error occurred during the installation of the validation toolkit: '{0}'" + Environment.NewLine + "The application will shut down.", e.Message), "Validation toolkit", MessageBoxButton.OK, MessageBoxImage.Error); ////App.Current.Shutdown(); //return; } }