private void StandAloneThreadExceptionHandler(object sender, UnhandledExceptionEventArgs e) { if (RunningFromUnitTest) { // happen when we close Ginger from unit tests if (e.ExceptionObject is System.Runtime.InteropServices.InvalidComObjectException || e.ExceptionObject is System.Threading.Tasks.TaskCanceledException) { Reporter.ToLog(eLogLevel.DEBUG, "StandAloneThreadExceptionHandler: Running from unit test ignoring error on ginger close"); return; } } Reporter.ToLog(eLogLevel.FATAL, ">>>>>>>>>>>>>> Error occurred on stand alone thread(non UI) - " + e.ExceptionObject); //Reporter.ToUser(eUserMsgKey.ThreadError, "Error occurred on stand alone thread - " + e.ExceptionObject.ToString()); if (RunningInExecutionMode == false) { AppSolutionAutoSave.DoAutoSave(); } /// if (e.IsTerminating)... /// //TODO: show exception // save work to temp folder // enable user to save work // ask if to restart/close // when loading check restore and restore }
public void Close() { try { AppSolutionAutoSave.StopSolutionAutoSave(); if (SolutionRepository != null) { CloseAllRunningAgents(); PlugInsManager.CloseAllRunningPluginProcesses(); SolutionRepository.StopAllRepositoryFolderWatchers(); } if (!RunningInExecutionMode) { UserProfile.GingerStatus = eGingerStatus.Closed; UserProfile.SaveUserProfile(); AppSolutionAutoSave.CleanAutoSaveFolders(); } if (WorkSpace.Instance.LocalGingerGrid != null) { WorkSpace.Instance.LocalGingerGrid.Stop(); } WorkSpace.Instance.Telemetry.SessionEnd(); mWorkSpace = null; } catch (Exception ex) { Reporter.ToLog(eLogLevel.DEBUG, "Exception during close workspace", ex); } }
public void CloseSolution() { //Do cleanup if (SolutionRepository != null) { PlugInsManager.CloseAllRunningPluginProcesses(); CloseAllRunningAgents(); CloseAllEnvironments(); SolutionRepository.StopAllRepositoryFolderWatchers(); if (!RunningInExecutionMode) { AppSolutionAutoSave.SolutionAutoSaveEnd(); } } //Reset values if (!DoNotResetWorkspaceArgsOnClose) { mPluginsManager = new PluginsManager(); SolutionRepository = null; SourceControl = null; Solution = null; } EventHandler.SolutionClosed(); }
public void Close() { AppSolutionAutoSave.StopSolutionAutoSave(); if (SolutionRepository != null) { CloseAllRunningAgents(); PlugInsManager.CloseAllRunningPluginProcesses(); SolutionRepository.StopAllRepositoryFolderWatchers(); } if (!RunningInExecutionMode) { UserProfile.GingerStatus = eGingerStatus.Closed; UserProfile.SaveUserProfile(); AppSolutionAutoSave.CleanAutoSaveFolders(); } WorkSpace.Instance.LocalGingerGrid.Stop(); WorkSpace.Instance.Telemetry.SessionEnd(); mWorkSpace = null; }