private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { bool result = false; if (splashScreen != null || splashScreen.IsVisible) { splashScreen.Hide(); } if (e.Cancelled == true) { } else if (e.Error != null) { MessageBox.Show(splashScreen, e.Error.Message, "Ошибка подключения к базе данных", MessageBoxButton.OK, MessageBoxImage.Error); } else { result = true; if (isDbConnectionOkMessageRequired) { MessageBox.Show(splashScreen, "Связь с БД установлена", "Информация", MessageBoxButton.OK, MessageBoxImage.Information); } } if (splashScreen != null) { splashScreen.Close(); } if (CheckDbConnectionComplitted != null) { DbCheckEventArgs args = new DbCheckEventArgs(); args.Result = result; CheckDbConnectionComplitted(this, args); } }
private void onCheckDbConnectionComplitted(object sender, DbCheckEventArgs e) { bool connectionIsOk = e.Result; if (connectionIsOk) { //если проверка настроек успешна, запускаем программу dbWorker.MainDbConnectionString = Settings.GlobalMainDbConnectionString; this.dbWorker.CheckDbConnectionComplitted -= onCheckDbConnectionComplitted; mainWindow.Show(); } else { //иначе, показываем окно настроек if (this.changeSettings() == true) { //если настройки были изменены, проверяем их dbWorker.CheckDBConnectionVisualAsync(Settings.GlobalMainDbConnectionString, false); } else { //иначе, выходим из программы //Application.Current.Shutdown(); if (this.mainWindow != null) { this.mainWindow.Close(); } } } }
//private async Task<bool> checkDB() //{ // setSettings(); // bool result = await DbWorker.CheckDBConnectionVisualAsync(settings,true,this); // return result; //} private void onCheckDbConnectionComplitted(object sender, DbCheckEventArgs e) { //bool result = e.Result; this.Activate(); }