/// <summary> /// Shows the exception dialog, which allows the user to choose whether or not to continue</summary> /// <param name="exception">Exception</param> /// <returns>Nullable Boolean indicating how a window was closed by the user</returns> protected virtual bool? ShowExceptionDialog(Exception exception) { var dlg = new UnhandledExceptionDialog(); dlg.DataContext = new UnhandledExceptionViewModel(exception.Message); if(Application.Current.MainWindow.IsVisible) dlg.Owner = Application.Current.MainWindow; return dlg.ShowDialog(); }
/// <summary> /// Shows the exception dialog that allows the user to choose whether or not to continue. /// If the user chooses not to continue, Environment.Exit(1) is called.</summary> /// <param name="exception">Exception raised</param> protected override void ShowExceptionDialog(Exception exception) { bool? result = null; try { var dlg = new UnhandledExceptionDialog(); // Call ToString() to get the call stack. The Message property may not include that. dlg.DataContext = new UnhandledExceptionViewModel(exception.ToString()); dlg.Owner = Application.Current.MainWindow; result = dlg.ShowDialog(); if (UserFeedbackService != null) UserFeedbackService.ShowFeedbackForm(); } finally { if (result.HasValue && !result.Value) Environment.Exit(1); } }