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;
            }
        }