// Code to execute on Unhandled Exceptions
        private static void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
        {
            try
            {
                LogInstance.LogCritical("Unhandled exception: {0}", e.ExceptionObject);

                if (Debugger.IsAttached)
                {
                    // An unhandled exception has occurred; break into the debugger
                    Debugger.Break();
                }

                // don't navigate to an error view as that is awkward and doesn't play well with navigation
                // don't show a MessageBox either as that isn't customizable

                DispatchUtil.SafeDispatch(() =>
                {
                    if (e.ExceptionObject is DataFormatReadException)
                    {
                        MessageBox.Show(e.ExceptionObject.Message, "Unexpected Data Returned", MessageBoxButton.OK);
                        var coreData = IoC.Get<ICoreData>();
                        var duringStartup = !coreData.IsLoaded;
                        if (duringStartup) ExitApp();
                        return;
                    }

                    var errorWin = new ErrorWindow(e.ExceptionObject,
                    "An unexpected error has occurred. Please click Send to report the error details.") { Title = "Unexpected Error" };
                    errorWin.Show();
                });

                e.Handled = true;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                e.Handled = false;
                //Quit();
            }
        }
 private static void AfterErrorMessageReceived(ErrorMessage errorMessage)
 {
     DispatchUtil.SafeDispatch(() =>
     {
         var friendlyMsg = !string.IsNullOrEmpty(errorMessage.FriendlyError) ? errorMessage.FriendlyError : "Aw snap. An error occurred.";
         var errorWin = new ErrorWindow(errorMessage.Error, friendlyMsg)
         {
             Title = errorMessage.Title
         };
         errorWin.Show();
     });
 }