// инициализировать работу с БД c возсможной конвертацией public void InitializeDatabase(bool swithing) { if (swithing) { //if (MessageBox.Show("Прочитать авторов из файла базы данных?\nЕсли вы ответите \"нет\", файл базы данных с авторами будет перезаписан текущим списком.", "Сообщение", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) //{ // // реинициализируем апдейтер // InfoUpdater.Init(_setting, _logger); //} if (MessageBox.Show("Сконвертировать данные из xml файла в базу данных?","Сообщение", MessageBoxButton.YesNo,MessageBoxImage.Question)==MessageBoxResult.No) swithing = false; } if (databaseManager==null) databaseManager = new DatabaseManager(swithing); }
/// <summary> /// Реагирует на изменение некоторых настроек (сортировки, категории, правила для динамического окна) /// </summary> private void SettingPropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case "UseDatabase": if (currentUseDatabase==_setting.UseDatabase) return; if (_setting.UseDatabase) { InitializeDatabase(true); // реинициализируем апдейтер InfoUpdater.Init(_setting, _logger); }else { if (MessageBox.Show("Прочитать авторов из файла xml?\nЕсли вы ответите \"нет\", файл xml с авторами будет перезаписан текущим списком.","Сообщение", MessageBoxButton.YesNo,MessageBoxImage.Question)==MessageBoxResult.Yes) { // реинициализируем апдейтер InfoUpdater.Init(_setting, _logger); } if (databaseManager != null) databaseManager = null; InfoUpdater.Save(); } // перепривязываем данные AuthorsListBox.ItemsSource = InfoUpdater.OutputCollection; break; case "Init": case "SortDirection": case "SortProperty": case "UseCategory": InfoUpdater.Sort(_setting.SortProperty, _setting.SortDirection); InfoUpdater.UseCategory = _setting.UseCategory; switch (_setting.SortProperty) { case "UpdateDate": SortPropertyButton.Content = "д"; SortPropertyButton.ToolTip = "Сортировка по дате обновления"; break; case "Name": SortPropertyButton.Content = "а"; SortPropertyButton.ToolTip = "Сортировка по авторам"; break; } switch (_setting.SortDirection) { case ListSortDirection.Ascending: SortDirectButton.ToolTip = "Сортировка по возрастанию"; SortDirectButton.Content = FindResource("SortAscPath"); break; case ListSortDirection.Descending: SortDirectButton.ToolTip = "Сортировка по убыванию"; SortDirectButton.Content = FindResource("SortDescPath"); break; } AuthorsListBox.ScrollIntoView(AuthorsListBox.SelectedValue); break; case "DesiredPositionAdvancedWindow": case "AdvancedWindowVisibleStyle": { CheckForAuthorPanelAlwaysVisivility(); AuthorsListBox_SelectionChanged(sender, null); } break; } }