Exemple #1
0
        private void Import()
        {
            OpenFileDialogParameters selectSqlDumpFileDialogParameters = new OpenFileDialogParameters
            {
                DialogTitle = "Выбор SQL-дампа",
                Filter      = "Все поддерживаемые файлы|*.sql;*zip;*.rar;*.gz;*.7z|SQL -дампы (*.sql)|*.sql|Архивы (*.zip, *.rar, *.gz, *.7z)|*zip;*.rar;*.gz;*.7z|Все файлы (*.*)|*.*",
                Multiselect = false
            };
            OpenFileDialogResult selectSqlDumpFileDialogResult = WindowManager.ShowOpenFileDialog(selectSqlDumpFileDialogParameters);

            if (selectSqlDumpFileDialogResult.DialogResult)
            {
                ImportWindowViewModel importWindowViewModel = new ImportWindowViewModel(mainModel, selectSqlDumpFileDialogResult.SelectedFilePaths.First());
                IWindowContext        importWindowContext   = WindowManager.CreateWindow(RegisteredWindows.WindowKey.IMPORT_WINDOW, importWindowViewModel, CurrentWindowContext);
                importWindowContext.ShowDialog();
                if (IsDefaultSearchTabVisible)
                {
                    DefaultSearchTabViewModel.Refresh(setFocus: true);
                }
                else
                {
                    foreach (SearchTabViewModel searchTabViewModel in TabViewModels.OfType <SearchTabViewModel>())
                    {
                        searchTabViewModel.Refresh(setFocus: searchTabViewModel == SelectedTabViewModel);
                    }
                }
            }
        }
Exemple #2
0
        private void CloseTab(TabViewModel tabViewModel)
        {
            tabViewModel.HandleTabClosing();
            switch (tabViewModel)
            {
            case SearchTabViewModel searchTabViewModel:
                searchTabViewModel.NonFictionSearchComplete -= SearchTabNonFictionSearchComplete;
                searchTabViewModel.FictionSearchComplete    -= SearchTabFictionSearchComplete;
                searchTabViewModel.SciMagSearchComplete     -= SearchTabSciMagSearchComplete;
                break;

            case NonFictionSearchResultsTabViewModel nonFictionSearchResultsTabViewModel:
                nonFictionSearchResultsTabViewModel.OpenNonFictionDetailsRequested -= OpenNonFictionDetailsRequested;
                break;

            case FictionSearchResultsTabViewModel fictionSearchResultsTabViewModel:
                fictionSearchResultsTabViewModel.OpenFictionDetailsRequested -= OpenFictionDetailsRequested;
                break;

            case SciMagSearchResultsTabViewModel sciMagSearchResultsTabViewModel:
                sciMagSearchResultsTabViewModel.OpenSciMagDetailsRequested -= OpenSciMagDetailsRequested;
                break;

            case NonFictionDetailsTabViewModel nonFictionDetailsTabViewModel:
                nonFictionDetailsTabViewModel.SelectDownloadRequested -= SelectDownloadRequested;
                nonFictionDetailsTabViewModel.CloseTabRequested       -= NonFictionDetailsCloseTabRequested;
                break;

            case FictionDetailsTabViewModel fictionDetailsTabViewModel:
                fictionDetailsTabViewModel.SelectDownloadRequested -= SelectDownloadRequested;
                fictionDetailsTabViewModel.CloseTabRequested       -= FictionDetailsCloseTabRequested;
                break;

            case SciMagDetailsTabViewModel sciMagDetailsTabViewModel:
                sciMagDetailsTabViewModel.SelectDownloadRequested -= SelectDownloadRequested;
                sciMagDetailsTabViewModel.CloseTabRequested       -= SciMagDetailsCloseTabRequested;
                break;
            }
            int removingTabIndex = TabViewModels.IndexOf(tabViewModel);

            TabViewModels.Remove(tabViewModel);
            NotifyPropertyChanged(nameof(IsDefaultSearchTabVisible));
            NotifyPropertyChanged(nameof(AreTabsVisible));
            NotifyPropertyChanged(nameof(IsNewTabButtonVisible));
            if (!TabViewModels.Any())
            {
                SelectedTabViewModel = null;
                DefaultSearchTabViewModel.Refresh(setFocus: true);
            }
            else
            {
                int newSelectedTabIndex = TabViewModels.Count > removingTabIndex ? removingTabIndex : TabViewModels.Count - 1;
                SelectedTabViewModel = TabViewModels[newSelectedTabIndex];
            }
        }
 private void RefreshSearchTabCollectionAvailabilities()
 {
     if (IsDefaultSearchTabVisible)
     {
         DefaultSearchTabViewModel.Refresh(setFocus: true);
     }
     else
     {
         foreach (SearchTabViewModel searchTabViewModel in TabViewModels.OfType <SearchTabViewModel>())
         {
             searchTabViewModel.Refresh(setFocus: searchTabViewModel == SelectedTabViewModel);
         }
     }
 }
Exemple #4
0
        public void Synchronize()
        {
            SynchronizationLocalizator synchronizationLocalizator = MainModel.Localization.CurrentLanguage.Synchronization;

            if (MainModel.DatabaseMetadata.NonFictionFirstImportComplete != true)
            {
                ShowMessage(synchronizationLocalizator.ErrorMessageTitle, synchronizationLocalizator.ImportRequired);
                return;
            }
            if (MainModel.AppSettings.Mirrors.NonFictionSynchronizationMirrorName == null)
            {
                ShowMessage(synchronizationLocalizator.ErrorMessageTitle, synchronizationLocalizator.NoSynchronizationMirror);
                return;
            }
            if (MainModel.AppSettings.Network.OfflineMode)
            {
                if (ShowPrompt(synchronizationLocalizator.OfflineModePromptTitle, synchronizationLocalizator.OfflineModePromptText))
                {
                    MainModel.AppSettings.Network.OfflineMode = false;
                    MainModel.SaveSettings();
                }
                else
                {
                    return;
                }
            }
            SynchronizationWindowViewModel synchronizationWindowViewModel = new SynchronizationWindowViewModel(MainModel);
            IWindowContext synchronizationWindowContext = WindowManager.CreateWindow(RegisteredWindows.WindowKey.SYNCHRONIZATION_WINDOW, synchronizationWindowViewModel, CurrentWindowContext);

            synchronizationWindowContext.ShowDialog();
            if (IsDefaultSearchTabVisible)
            {
                DefaultSearchTabViewModel.SetFocus();
            }
            else
            {
                if (SelectedTabViewModel is SearchTabViewModel searchTabViewModel)
                {
                    searchTabViewModel.SetFocus();
                }
            }
        }
Exemple #5
0
        public void Synchronize()
        {
            if (mainModel.NonFictionBookCount == 0)
            {
                MessageBoxWindow.ShowMessage("Ошибка", @"Перед синхронизацией списка нехудожественной литературы необходимо выполнить импорт из дампа базы данных (пункт ""Импорт"" в меню).", CurrentWindowContext);
                return;
            }
            if (mainModel.AppSettings.Mirrors.NonFictionSynchronizationMirrorName == null)
            {
                MessageBoxWindow.ShowMessage("Ошибка", @"Не выбрано зеркало для синхронизации списка нехудожественной литературы.", CurrentWindowContext);
                return;
            }
            if (mainModel.AppSettings.Network.OfflineMode)
            {
                if (MessageBoxWindow.ShowPrompt("Автономный режим", "Синхронизация невозможна при включенном автономном режиме. Выключить автономный режим?", CurrentWindowContext))
                {
                    mainModel.AppSettings.Network.OfflineMode = false;
                    mainModel.SaveSettings();
                }
                else
                {
                    return;
                }
            }
            SynchronizationWindowViewModel synchronizationWindowViewModel = new SynchronizationWindowViewModel(mainModel);
            IWindowContext synchronizationWindowContext = WindowManager.CreateWindow(RegisteredWindows.WindowKey.SYNCHRONIZATION_WINDOW, synchronizationWindowViewModel, CurrentWindowContext);

            synchronizationWindowContext.ShowDialog();
            if (IsDefaultSearchTabVisible)
            {
                DefaultSearchTabViewModel.SetFocus();
            }
            else
            {
                if (SelectedTabViewModel is SearchTabViewModel searchTabViewModel)
                {
                    searchTabViewModel.SetFocus();
                }
            }
        }
Exemple #6
0
        private void Import()
        {
            ImportLocalizator importLocalizator = MainModel.Localization.CurrentLanguage.Import;
            StringBuilder     filterBuilder     = new StringBuilder();

            filterBuilder.Append(importLocalizator.AllSupportedFiles);
            filterBuilder.Append("|*.sql;*zip;*.rar;*.gz;*.7z|");
            filterBuilder.Append(importLocalizator.SqlDumps);
            filterBuilder.Append(" (*.sql)|*.sql|");
            filterBuilder.Append(importLocalizator.Archives);
            filterBuilder.Append(" (*.zip, *.rar, *.gz, *.7z)|*zip;*.rar;*.gz;*.7z|");
            filterBuilder.Append(importLocalizator.AllFiles);
            filterBuilder.Append(" (*.*)|*.*");
            OpenFileDialogParameters selectSqlDumpFileDialogParameters = new OpenFileDialogParameters
            {
                DialogTitle = importLocalizator.BrowseImportFileDialogTitle,
                Filter      = filterBuilder.ToString(),
                Multiselect = false
            };
            OpenFileDialogResult selectSqlDumpFileDialogResult = WindowManager.ShowOpenFileDialog(selectSqlDumpFileDialogParameters);

            if (selectSqlDumpFileDialogResult.DialogResult)
            {
                ImportWindowViewModel importWindowViewModel = new ImportWindowViewModel(MainModel, selectSqlDumpFileDialogResult.SelectedFilePaths.First());
                IWindowContext        importWindowContext   = WindowManager.CreateWindow(RegisteredWindows.WindowKey.IMPORT_WINDOW, importWindowViewModel, CurrentWindowContext);
                importWindowContext.ShowDialog();
                if (IsDefaultSearchTabVisible)
                {
                    DefaultSearchTabViewModel.Refresh(setFocus: true);
                }
                else
                {
                    foreach (SearchTabViewModel searchTabViewModel in TabViewModels.OfType <SearchTabViewModel>())
                    {
                        searchTabViewModel.Refresh(setFocus: searchTabViewModel == SelectedTabViewModel);
                    }
                }
            }
        }