Esempio n. 1
0
        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
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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;
        }