private void SaveFile(object sender, ExecutedRoutedEventArgs e) { SpecialPaths.VerifyDirectory(SpecialPaths.DataBases); //Начало сохранения данных this.BusyIndicator.BusyContent = "Сохранение данных..."; this.BusyIndicator.IsBusy = true; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += delegate { this.dataStorage.Save(); }; worker.RunWorkerCompleted += delegate { //Сохранение завершено this.BusyIndicator.IsBusy = false; MessageBox.Show("Данные сохранены", "Успех", MessageBoxButton.OK, MessageBoxImage.Exclamation); }; worker.RunWorkerAsync(); }
private void SaveFileAs(object sender, ExecutedRoutedEventArgs e) { SpecialPaths.VerifyDirectory(SpecialPaths.DataBases); SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "SQLite file|*.sqlite"; saveFileDialog.InitialDirectory = SpecialPaths.DataBases; if (saveFileDialog.ShowDialog(this) == true) { //Начало сохранения данных this.BusyIndicator.BusyContent = "Сохранение данных..."; this.BusyIndicator.IsBusy = true; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += delegate { this.dataStorage.SaveAs(saveFileDialog.FileName); }; worker.RunWorkerCompleted += delegate { //Сохранение завершено this.BusyIndicator.IsBusy = false; MessageBox.Show("Данные сохранены", "Успех", MessageBoxButton.OK, MessageBoxImage.Exclamation); }; worker.RunWorkerAsync(); } }
private void OpenFile(object sender, ExecutedRoutedEventArgs e) { SpecialPaths.VerifyDirectory(SpecialPaths.DataBases); OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "sqlite files|*.sqlite|all files|*.*"; openFileDialog.InitialDirectory = SpecialPaths.DataBases; if (openFileDialog.ShowDialog() == true) { //Начало загрузки данных this.BusyIndicator.IsBusy = true; this.BusyIndicator.BusyContent = "Загрузка данных..."; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += delegate { try { Dispatcher.Invoke((Action)(() => { this.dataStorage = new DataStorage(openFileDialog.FileName, true); this.ShowEntities(); })); } catch (Exception ex) { this.dataStorage = null; MessageBox.Show("Не удалось считать данные!\n\nException:\n" + ex.ToString(), "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }; worker.RunWorkerCompleted += delegate { //Загрузка завершена this.BusyIndicator.IsBusy = false; }; worker.RunWorkerAsync(); } }