private void ChangeDatabase()
        {
            StringBuilder filterBuilder = new StringBuilder();

            filterBuilder.Append(Localization.Databases);
            filterBuilder.Append(" (*.db)|*.db|");
            filterBuilder.Append(Localization.AllFiles);
            filterBuilder.Append(" (*.*)|*.*");
            OpenFileDialogParameters openFileDialogParameters = new OpenFileDialogParameters
            {
                DialogTitle = Localization.BrowseDatabaseDialogTitle,
                Filter      = filterBuilder.ToString(),
                Multiselect = false
            };
            OpenFileDialogResult openFileDialogResult = WindowManager.ShowOpenFileDialog(openFileDialogParameters);

            if (openFileDialogResult.DialogResult)
            {
                string databaseFilePath = openFileDialogResult.SelectedFilePaths.First();
                if (MainModel.OpenDatabase(databaseFilePath))
                {
                    MainModel.AppSettings.DatabaseFileName = MainModel.GetDatabaseNormalizedPath(databaseFilePath);
                    MainModel.SaveSettings();
                    GetStats();
                }
                else
                {
                    ShowMessage(Localization.Error, Localization.GetCannotOpenDatabase(databaseFilePath));
                    MainModel.OpenDatabase(MainModel.AppSettings.DatabaseFileName);
                }
            }
        }
示例#2
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);
                    }
                }
            }
        }
示例#3
0
        public void ShowOpenFileDialog(OpenFileDialogParameters parameters, out IEnumerable <string> fileNames)
        {
            var window = new CommonOpenFileDialog()
            {
                EnsureFileExists          = parameters.EnsureFileExists,
                EnsureReadOnly            = parameters.EnsureReadOnly,
                EnsurePathExists          = parameters.EnsurePathExists,
                EnsureValidNames          = parameters.EnsureValidNames,
                AllowPropertyEditing      = parameters.AllowPropertyEditing,
                AddToMostRecentlyUsedList = parameters.AddToMostRecentlyUsedList,
                AllowNonFileSystemItems   = parameters.AllowNonFileSystemItems,
                IsFolderPicker            = parameters.IsFolderPicker,
                Multiselect                    = parameters.Multiselect,
                RestoreDirectory               = parameters.RestoreDirectory,
                ShowPlacesList                 = parameters.ShowPlacesList,
                ShowHiddenItems                = parameters.ShowHiddenItems,
                NavigateToShortcut             = parameters.NavigateToShortcut,
                InitialDirectory               = parameters.InitialDirectory,
                DefaultDirectory               = parameters.DefaultDirectory,
                DefaultDirectoryShellContainer = parameters.DefaultDirectoryShellContainer,
                CookieIdentifier               = parameters.CookieIdentifier,
                DefaultFileName                = parameters.DefaultFileName,
                DefaultExtension               = parameters.DefaultExtension,
                Title = parameters.Title
            };

            if (parameters.FilterList != null)
            {
                foreach (var filter in parameters.FilterList)
                {
                    window.Filters.Add(new CommonFileDialogFilter(filter.Key, filter.Value));
                }
            }
            var result = window.ShowDialog();

            if (result == CommonFileDialogResult.Ok)
            {
                var list = new List <string>();
                foreach (var item in window.FileNames)
                {
                    list.Add(item);
                }
                fileNames = list;
            }
            else
            {
                fileNames = null;
            }
        }
        private void AddBook()
        {
            OpenFileDialogParameters openFileDialogParameters = new OpenFileDialogParameters
            {
                Filter      = "EPUB files (*.epub)|*.epub|All files (*.*)|*.*",
                Multiselect = true
            };
            OpenFileDialogResult openDialogResult = windowManager.ShowOpenFileDialog(openFileDialogParameters);

            if (openDialogResult.DialogResult)
            {
                foreach (string selectedFilePath in openDialogResult.SelectedFilePaths)
                {
                    libraryModel.AddBookToLibrary(selectedFilePath);
                }
                RefreshLibrary();
            }
        }
        public static OpenFileDialogResult SelectDatabaseFile(MainModel mainModel)
        {
            DatabaseWindowLocalizator databaseLocalizator = mainModel.Localization.CurrentLanguage.Database;
            StringBuilder             filterBuilder       = new StringBuilder();

            filterBuilder.Append(databaseLocalizator.Databases);
            filterBuilder.Append(" (*.db)|*.db|");
            filterBuilder.Append(databaseLocalizator.AllFiles);
            filterBuilder.Append(" (*.*)|*.*");
            OpenFileDialogParameters openFileDialogParameters = new OpenFileDialogParameters
            {
                DialogTitle = databaseLocalizator.BrowseDatabaseDialogTitle,
                Filter      = filterBuilder.ToString(),
                Multiselect = false
            };

            return(WindowManager.ShowOpenFileDialog(openFileDialogParameters));
        }
示例#6
0
        private void backgroundWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            OpenFileDialogParameters parameters = (OpenFileDialogParameters)e.Argument;

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = parameters.InitialDirectory;
            openFileDialog.Filter           = parameters.Filter;
            openFileDialog.RestoreDirectory = true;

            if (openFileDialog.ShowDialog(controller.MainForm) == DialogResult.OK)
            {
                e.Result = openFileDialog.FileName;
            }
            else
            {
                e.Result = null;
            }
        }
示例#7
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);
                    }
                }
            }
        }
        public static OpenFileDialogResult SelectDatabaseDumpFile(MainModel mainModel)
        {
            ImportWindowLocalizator 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
            };

            return(WindowManager.ShowOpenFileDialog(selectSqlDumpFileDialogParameters));
        }
示例#9
0
        private OpenFileDialogResult ShowOpenFileDialog(OpenFileDialogParameters openFileDialogParameters)
        {
            if (openFileDialogParameters == null)
            {
                throw new ArgumentNullException("openFileDialogParameters");
            }
            OpenFileDialog openFileDialog = new OpenFileDialog();

            if (!String.IsNullOrEmpty(openFileDialogParameters.Filter))
            {
                openFileDialog.Filter = openFileDialogParameters.Filter;
            }
            openFileDialog.Multiselect = openFileDialogParameters.Multiselect;
            if (!String.IsNullOrEmpty(openFileDialogParameters.InitialDirectory))
            {
                openFileDialog.InitialDirectory = openFileDialogParameters.InitialDirectory;
            }
            OpenFileDialogResult result = new OpenFileDialogResult();

            result.DialogResult      = openFileDialog.ShowDialog() == true;
            result.SelectedFilePaths = result.DialogResult ? openFileDialog.FileNames.ToList() : new List <string>();
            return(result);
        }
示例#10
0
 private void OkButtonClick()
 {
     if (IsCreateDatabaseSelected)
     {
         SaveFileDialogParameters saveFileDialogParameters = new SaveFileDialogParameters
         {
             DialogTitle     = "Сохранение новой базы данных",
             Filter          = "Базы данных (*.db)|*.db|Все файлы (*.*)|*.*",
             OverwritePrompt = true
         };
         if (eventType == EventType.DATABASE_CORRUPTED)
         {
             string databaseFilePath = mainModel.GetDatabaseFullPath(mainModel.AppSettings.DatabaseFileName);
             saveFileDialogParameters.InitialDirectory = Path.GetDirectoryName(databaseFilePath);
             saveFileDialogParameters.InitialFileName  = Path.GetFileName(databaseFilePath);
         }
         else
         {
             saveFileDialogParameters.InitialDirectory = Environment.AppDataDirectory;
             saveFileDialogParameters.InitialFileName  = Constants.DEFAULT_DATABASE_FILE_NAME;
         }
         SaveFileDialogResult saveFileDialogResult = WindowManager.ShowSaveFileDialog(saveFileDialogParameters);
         if (saveFileDialogResult.DialogResult)
         {
             if (mainModel.CreateDatabase(saveFileDialogResult.SelectedFilePath))
             {
                 mainModel.AppSettings.DatabaseFileName = mainModel.GetDatabaseNormalizedPath(saveFileDialogResult.SelectedFilePath);
                 mainModel.SaveSettings();
                 CurrentWindowContext.CloseDialog(true);
             }
             else
             {
                 MessageBoxWindow.ShowMessage("Ошибка", "Не удалось создать базу данных.", CurrentWindowContext);
             }
         }
     }
     else
     {
         OpenFileDialogParameters openFileDialogParameters = new OpenFileDialogParameters
         {
             DialogTitle = "Выбор базы данных",
             Filter      = "Базы данных (*.db)|*.db|Все файлы (*.*)|*.*",
             Multiselect = false
         };
         OpenFileDialogResult openFileDialogResult = WindowManager.ShowOpenFileDialog(openFileDialogParameters);
         if (openFileDialogResult.DialogResult)
         {
             string databaseFilePath = openFileDialogResult.SelectedFilePaths.First();
             if (mainModel.OpenDatabase(databaseFilePath))
             {
                 mainModel.AppSettings.DatabaseFileName = mainModel.GetDatabaseNormalizedPath(databaseFilePath);
                 mainModel.SaveSettings();
                 CurrentWindowContext.CloseDialog(true);
             }
             else
             {
                 UpdateHeaderAndEventType(Path.GetFileName(databaseFilePath));
                 NotifyPropertyChanged(nameof(Header));
             }
         }
     }
 }
示例#11
0
        private void OkButtonClick()
        {
            StringBuilder filterBuilder = new StringBuilder();

            filterBuilder.Append(Localization.Databases);
            filterBuilder.Append(" (*.db)|*.db|");
            filterBuilder.Append(Localization.AllFiles);
            filterBuilder.Append(" (*.*)|*.*");
            if (IsCreateDatabaseSelected)
            {
                SaveFileDialogParameters saveFileDialogParameters = new SaveFileDialogParameters
                {
                    DialogTitle     = Localization.BrowseNewDatabaseDialogTitle,
                    Filter          = filterBuilder.ToString(),
                    OverwritePrompt = true
                };
                if (eventType == EventType.DATABASE_CORRUPTED)
                {
                    string databaseFilePath = MainModel.GetDatabaseFullPath(MainModel.AppSettings.DatabaseFileName);
                    saveFileDialogParameters.InitialDirectory = Path.GetDirectoryName(databaseFilePath);
                    saveFileDialogParameters.InitialFileName  = Path.GetFileName(databaseFilePath);
                }
                else
                {
                    saveFileDialogParameters.InitialDirectory = Environment.AppDataDirectory;
                    saveFileDialogParameters.InitialFileName  = Constants.DEFAULT_DATABASE_FILE_NAME;
                }
                SaveFileDialogResult saveFileDialogResult = WindowManager.ShowSaveFileDialog(saveFileDialogParameters);
                if (saveFileDialogResult.DialogResult)
                {
                    if (MainModel.CreateDatabase(saveFileDialogResult.SelectedFilePath))
                    {
                        MainModel.AppSettings.DatabaseFileName = MainModel.GetDatabaseNormalizedPath(saveFileDialogResult.SelectedFilePath);
                        MainModel.SaveSettings();
                        CurrentWindowContext.CloseDialog(true);
                    }
                    else
                    {
                        ShowMessage(Localization.Error, Localization.CannotCreateDatabase);
                    }
                }
            }
            else
            {
                OpenFileDialogParameters openFileDialogParameters = new OpenFileDialogParameters
                {
                    DialogTitle = Localization.BrowseExistingDatabaseDialogTitle,
                    Filter      = filterBuilder.ToString(),
                    Multiselect = false
                };
                OpenFileDialogResult openFileDialogResult = WindowManager.ShowOpenFileDialog(openFileDialogParameters);
                if (openFileDialogResult.DialogResult)
                {
                    string databaseFilePath = openFileDialogResult.SelectedFilePaths.First();
                    if (MainModel.OpenDatabase(databaseFilePath))
                    {
                        MainModel.AppSettings.DatabaseFileName = MainModel.GetDatabaseNormalizedPath(databaseFilePath);
                        MainModel.SaveSettings();
                        CurrentWindowContext.CloseDialog(true);
                    }
                    else
                    {
                        UpdateHeaderAndEventType(Path.GetFileName(databaseFilePath));
                        NotifyPropertyChanged(nameof(Header));
                    }
                }
            }
        }
示例#12
0
        public OptionContentViewModel()
        {
            this.IsWorking = new ReactiveProperty <bool>().AddTo(this.CompositeDisposable);

            this.SelectDirectoryCommand = this.IsWorking.Inverse().ToReactiveCommand <object>()
                                          .WithSubscribe(args =>
            {
                var parameter = new FolderBrowserDialogParameters();
                var info      = args as ToolSettings.PathInfo;
                if (string.IsNullOrEmpty(info?.Path) == false)
                {
                    parameter.InitialDirectory = info.Path;
                }

                var ready = this.CommonDialogService.ShowDialog(parameter);
                if (ready == false)
                {
                    return;
                }

                if (info != null)
                {
                    info.Path = parameter.FileName;
                }
                else
                {
                    this.Settings.OtherTools.ExplorerRoots.Add(new ToolSettings.PathInfo()
                    {
                        Path = parameter.FileName
                    });
                }
            })
                                          .AddTo(this.CompositeDisposable);

            this.RemoveDirectoryCommand = this.IsWorking.Inverse().ToReactiveCommand <object>()
                                          .WithSubscribe(args =>
            {
                var info = (ToolSettings.PathInfo)args;
                this.Settings.OtherTools.ExplorerRoots.Remove(info);
            })
                                          .AddTo(this.CompositeDisposable);

            this.RefreshExplorerCommand = this.IsWorking.Inverse().ToReactiveCommand()
                                          .WithSubscribe(() => this.EventAggregator?.GetEvent <RefreshExplorerEvent>().Publish())
                                          .AddTo(this.CompositeDisposable);

            this.InitializeSyntaxCommand = this.IsWorking.Inverse().ToReactiveCommand()
                                           .WithSubscribe(() =>
            {
                if (this.DialogService.Confirm(Resources.Message_ConfirmInitializeSyntax))
                {
                    this.SyntaxService.Initialize(true);
                }
            })
                                           .AddTo(this.CompositeDisposable);

            this.ImportSettingsFileCommand = this.IsWorking.Inverse().ToReactiveCommand()
                                             .WithSubscribe(() =>
            {
                var fileName   = Path.GetFileNameWithoutExtension(this.Settings.FilePath);
                var extension  = Path.GetExtension(this.Settings.FilePath);
                var parameters = new OpenFileDialogParameters()
                {
                    Filter           = $"{Resources.Label_SettingFile}|*{extension}|{Resources.Label_AllFiles}|*.*",
                    DefaultExtension = extension,
                };
                var ready = this.CommonDialogService.ShowDialog(parameters);
                if (ready == false)
                {
                    return;
                }

                if (this.DialogService.Confirm(Resources.Message_ConfirmOverrideSettings))
                {
                    this.ImportSettingsFile(parameters.FileName);
                }
            })
                                             .AddTo(this.CompositeDisposable);

            this.ExportSettingsFileCommand = this.IsWorking.Inverse().ToReactiveCommand()
                                             .WithSubscribe(() =>
            {
                var fileName   = Path.GetFileNameWithoutExtension(this.Settings.FilePath);
                var extension  = Path.GetExtension(this.Settings.FilePath);
                var parameters = new SaveFileDialogParameters()
                {
                    DefaultFileName  = $"{fileName} ({DateTime.Now:yyyyMMddHHmmss})",
                    Filter           = $"{Resources.Label_SettingFile}|*{extension}|{Resources.Label_AllFiles}|*.*",
                    DefaultExtension = extension,
                };
                var ready = this.CommonDialogService.ShowDialog(parameters);
                if (ready == false)
                {
                    return;
                }

                this.ExportSettingsFile(parameters.FileName);
            })
                                             .AddTo(this.CompositeDisposable);

            this.InitializeSettingsCommand = this.IsWorking.Inverse().ToReactiveCommand()
                                             .WithSubscribe(() =>
            {
                if (this.DialogService.Confirm(Resources.Message_ConfirmInitializeSettings))
                {
                    this.Settings.Initialize(true);
                }
            })
                                             .AddTo(this.CompositeDisposable);
        }