private void SelectPath()
        {
            string initialDirectory = GetDirectoryPath(correctPath: true);

            while (!Directory.Exists(initialDirectory) && !String.IsNullOrEmpty(initialDirectory))
            {
                initialDirectory = Path.GetDirectoryName(initialDirectory);
            }
            if (String.IsNullOrEmpty(initialDirectory))
            {
                initialDirectory = Environment.AppDataDirectory;
            }
            SaveFileDialogParameters saveFileDialogParameters = new SaveFileDialogParameters
            {
                DialogTitle      = "Экспортировать результаты поиска",
                Filter           = GetFileFilter(),
                OverwritePrompt  = false,
                InitialDirectory = initialDirectory,
                InitialFileName  = GetFileNameWithoutExtension(correctFileName: true) + "." + GenerateFileExtension()
            };
            SaveFileDialogResult saveFileDialogResult = WindowManager.ShowSaveFileDialog(saveFileDialogParameters);

            if (saveFileDialogResult.DialogResult)
            {
                FilePathTemplate = saveFileDialogResult.SelectedFilePath;
            }
        }
Beispiel #2
0
        public MaintenanceContentViewModel(IEventAggregator eventAggregator)
        {
            // ----- インジェクション ------------------------------

            this.EventAggregator = eventAggregator;

            // ----- プロパティの定義 ------------------------------
            this.TraceLogs = new ReactiveCollection <string>().AddTo(this.CompositeDisposable);
            BindingOperations.EnableCollectionSynchronization(this.TraceLogs, new object());
            this.DebugLogs = new ReactiveCollection <string>().AddTo(this.CompositeDisposable);
            BindingOperations.EnableCollectionSynchronization(this.DebugLogs, new object());
            this.InfoLogs = new ReactiveCollection <string>().AddTo(this.CompositeDisposable);
            BindingOperations.EnableCollectionSynchronization(this.InfoLogs, new object());
            this.WarnLogs = new ReactiveCollection <string>().AddTo(this.CompositeDisposable);
            BindingOperations.EnableCollectionSynchronization(this.WarnLogs, new object());

            this.CpuUsage    = new();
            this.MemoryUsage = new();

            this.IsWorking = new ReactiveProperty <bool>().AddTo(this.CompositeDisposable);

            // ----- コマンドの定義 ------------------------------

            this.ExportLogArchiveCommand = this.IsWorking.Inverse().ToReactiveCommand()
                                           .WithSubscribe(async() =>
            {
                var parameters = new SaveFileDialogParameters()
                {
                    DefaultFileName  = $"{this.ProductInfo.Product}-log ({DateTime.Now:yyyyMMddHHmmss})",
                    Filter           = "ZIP|*.zip",
                    DefaultExtension = ".zip",
                };
                var ready = this.CommonDialogService.ShowDialog(parameters);
                if (ready == false)
                {
                    return;
                }

                await this.ExportLogArchive(parameters.FileName);
            })
                                           .AddTo(this.CompositeDisposable);

            this.RefreshLogsCommand = new ReactiveCommand()
                                      .WithSubscribe(() => this.RefreshLogs())
                                      .AddTo(this.CompositeDisposable);

            this.IsVisibleChangedHandler = new ReactiveCommand <DependencyPropertyChangedEventArgs>()
                                           .WithSubscribe(e => this.RefreshLogs())
                                           .AddTo(this.CompositeDisposable);

            // ----- PUB/SUB メッセージ ------------------------------

            void updatedPerformanceInfo((double?processorTime, double?workingSetPrivate) payload)
            => this.UpdatedPerformanceInfo(payload.processorTime, payload.workingSetPrivate);

            this.EventAggregator.GetEvent <UpdatedPerformanceInfoEvent>().Subscribe(updatedPerformanceInfo);
        }
Beispiel #3
0
        private void backgroundWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            SaveFileDialogParameters parameters = (SaveFileDialogParameters)e.Argument;

            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.InitialDirectory = parameters.InitialDirectory;
            saveFileDialog.DefaultExt       = "ztg";
            saveFileDialog.Filter           = parameters.Filter;
            saveFileDialog.RestoreDirectory = true;

            if (saveFileDialog.ShowDialog(controller.MainForm) == DialogResult.OK)
            {
                e.Result = saveFileDialog.FileName;
            }
            else
            {
                e.Result = null;
            }
        }
        private void SelectDatabaseFilePath()
        {
            StringBuilder filterBuilder = new StringBuilder();

            filterBuilder.Append(Localization.Databases);
            filterBuilder.Append(" (*.db)|*.db|");
            filterBuilder.Append(Localization.AllFiles);
            filterBuilder.Append(" (*.*)|*.*");
            SaveFileDialogParameters saveFileDialogParameters = new SaveFileDialogParameters
            {
                DialogTitle     = Localization.SelectDatabaseFilePathDialogTitle,
                Filter          = filterBuilder.ToString(),
                OverwritePrompt = true
            };

            saveFileDialogParameters.InitialDirectory = Path.GetDirectoryName(DatabaseFilePath);
            saveFileDialogParameters.InitialFileName  = Path.GetFileName(DatabaseFilePath);
            SaveFileDialogResult saveFileDialogResult = WindowManager.ShowSaveFileDialog(saveFileDialogParameters);

            if (saveFileDialogResult.DialogResult)
            {
                DatabaseFilePath = saveFileDialogResult.SelectedFilePath;
            }
        }
Beispiel #5
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));
             }
         }
     }
 }
Beispiel #6
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));
                    }
                }
            }
        }
        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);
        }