private void _save_Click(object sender, EventArgs e) { var path = _provider.BrowseForFileSave( Handle, "Text Files (*.txt)|*.txt|All Files (*.*)|*.*", PathUtils.GetAbsoluteFilePath( Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), string.Format("Diagnostic Info {0:yyyy-MM-dd'T'HHmmss}.txt", DateTime.Now) ) ); if (string.IsNullOrEmpty(path)) { return; } try { TaskDialog.CallWithRetry( _ => File.WriteAllText(path, _textBox.Text), _provider, Strings.ProductTitle, Strings.FailedToSaveDiagnosticInfo, Strings.ErrorDetail, Strings.Retry, Strings.Cancel ); Process.Start("explorer.exe", "/select," + ProcessOutput.QuoteSingleArgument(path)); } catch (OperationCanceledException) { } }
private void Save_Executed(object sender, ExecutedRoutedEventArgs e) { var path = _provider.BrowseForFileSave( new WindowInteropHelper(this).Handle, Strings.DiagnosticsWindow_TextFileFilter, PathUtils.GetAbsoluteFilePath( Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Strings.DiagnosticsWindow_DefaultFileName.FormatUI(DateTime.Now) ) ); if (string.IsNullOrEmpty(path)) { return; } try { TaskDialog.CallWithRetry( _ => File.WriteAllText(path, _info.Result), _provider, Strings.ProductTitle, Strings.FailedToSaveDiagnosticInfo, Strings.ErrorDetail, Strings.Retry, Strings.Cancel ); Process.Start("explorer.exe", "/select," + ProcessOutput.QuoteSingleArgument(path)).Dispose(); } catch (OperationCanceledException) { } }
private void SaveToFile(bool includeAnalysisLogs) { string initialPath = null; try { initialPath = PathUtils.GetAbsoluteFilePath( Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Strings.DiagnosticsWindow_DefaultFileName.FormatUI(DateTime.Now) ); } catch (Exception ex) when(!ex.IsCriticalException()) { Debug.Fail(ex.ToUnhandledExceptionMessage(GetType())); } var path = Site.BrowseForFileSave( _window.Handle, Strings.DiagnosticsWindow_TextFileFilter, initialPath ); if (string.IsNullOrEmpty(path)) { return; } Cursor.Current = Cursors.WaitCursor; try { try { TaskDialog.CallWithRetry( _ => { using (var log = new StreamWriter(path, false, new UTF8Encoding(false))) { PyService.GetDiagnosticsLog(log, includeAnalysisLogs); } }, Site, Strings.ProductTitle, Strings.FailedToSaveDiagnosticInfo, Strings.ErrorDetail, Strings.Retry, Strings.Cancel ); if (File.Exists(path)) { Process.Start( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "explorer.exe"), "/select," + ProcessOutput.QuoteSingleArgument(path) )?.Dispose(); } } catch (OperationCanceledException) { } } finally { Cursor.Current = Cursors.Arrow; } }
private void SaveToFile(bool includeAnalysisLogs) { var path = PyService.Site.BrowseForFileSave( _window.Handle, Strings.DiagnosticsWindow_TextFileFilter, PathUtils.GetAbsoluteFilePath( Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Strings.DiagnosticsWindow_DefaultFileName.FormatUI(DateTime.Now) ) ); if (string.IsNullOrEmpty(path)) { return; } Cursor.Current = Cursors.WaitCursor; try { try { var log = PyService.GetDiagnosticsLog(includeAnalysisLogs); TaskDialog.CallWithRetry( _ => File.WriteAllText(path, log), PyService.Site, Strings.ProductTitle, Strings.FailedToSaveDiagnosticInfo, Strings.ErrorDetail, Strings.Retry, Strings.Cancel ); Process.Start("explorer.exe", "/select," + ProcessOutput.QuoteSingleArgument(path)).Dispose(); } catch (OperationCanceledException) { } } finally { Cursor.Current = Cursors.Arrow; } }