Beispiel #1
0
        private void ProcessBeforDisposedFailureTask(BaseVBAScriptTask basetask)
        {
            //将Log写入数据库
            basetask.DoDBLogging();

            //更新统计信息
            DomainManager.GetDomain(basetask.DomainGUID).IncreaseTotalTask();
            DomainManager.GetDomain(basetask.DomainGUID).IncreaseRunningTime(basetask.RunningTime);
            DomainManager.GetDomain(basetask.DomainGUID).IncreaseErrorTime(basetask.ErrorTime);
        }
 public static void BeforeTestHandler()
 {
     if (ms_tp == TestPhase.Nonstarted)
     {
         SetSyntaxDocumentText(ms_domain.PreparationScript);
         ms_task              = new LocalPreparationVBAScriptTask(ms_domain.DomainGUID, ms_vbaobjects);
         ms_task.AfterScript += new EventHandler(AfterTestHandler);
         ms_tp = TestPhase.Preparation;
         ms_task.Run();
     }
 }
        public static void AfterTestHandler(object sender, EventArgs e)
        {
            BaseVBAScriptTask whichtask = (BaseVBAScriptTask)sender;

            if (whichtask.Status == TaskStatus.Succeed && ms_IsClosed == false)
            {
                switch (ms_tp)
                {
                case TestPhase.Preparation:
                    SetSyntaxDocumentText(ms_domain.ParserScript);
                    ms_task              = new LocalParserVBAScriptTask(ms_domain.DomainGUID, whichtask.TaskChainGUID, ms_vbaobjects);
                    whichtask.VBAObjs    = null;
                    ms_task.AfterScript += new EventHandler(AfterTestHandler);
                    ms_task.Run();
                    ms_tp = TestPhase.Parser;
                    whichtask.Dispose();
                    break;

                case TestPhase.Parser:
                    SetSyntaxDocumentText(ms_domain.StorageScript);
                    ms_task              = new LocalStorageVBAScriptTask(ms_domain.DomainGUID, whichtask.TaskChainGUID, ms_vbaobjects);
                    whichtask.VBAObjs    = null;
                    ms_task.AfterScript += new EventHandler(AfterTestHandler);
                    ms_task.Run();
                    ms_tp = TestPhase.Storage;
                    whichtask.Dispose();
                    break;

                case TestPhase.Storage:
                    MessageBox.Show("测试结束,请检查日志以确定代码是否正确", "通知", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    whichtask.Dispose();
                    ms_task = null;
                    ms_tps  = TestProcessStatus.Ready;
                    RefreshTestToolButtons();
                    break;
                }
            }
            else
            {
                whichtask.Dispose();
                ms_task = null;
                ms_tps  = TestProcessStatus.Ready;
                RefreshTestToolButtons();
            }
        }
        private void DownloadTasks()
        {
            BaseVBAScriptTask bt = null;

            if (m_WaitingLocalTasks.Count <= m_SingerTransportation)
            {
                log.Debug("Start Download...");
                List <IRemoteTask> ts = ConnectionManagerClient.TTMFeachTasks(m_SingerTransportation);
                if (ts != null && ts.Count > 0)
                {
                    foreach (IRemoteTask t in ts)
                    {
                        bt = t as BaseVBAScriptTask;
                        if (DomainManager.IsDomainNeedUpdated(bt.DomainGUID, bt.TimeStamp))
                        {
                            Domain d = GetDomainFromServer(bt.DomainGUID);
                            if (d != null)
                            {
                                DomainManager.AddDomain(d);
                                log.Debug("Fetching A Domain for " + t.Name);
                            }
                            else
                            {
                                log.Debug("Weird DomainGUID With No Domian IN SERVER!:" + bt.DomainGUID);
                            }
                        }
                        this.AddTask(t);
                        log.Debug("Fetching one " + t.Name);
                    }
                }
                else
                {
                    log.Debug("No avaible remotetask for downloading...");
                }
            }
        }
        public static void AfterTestHandler(object sender, EventArgs e)
        {
            BaseVBAScriptTask whichtask = (BaseVBAScriptTask)sender;

            if (whichtask.Status == TaskStatus.Succeed && ms_IsClosed == false)
            {
                switch (ms_tp)
                {
                    case TestPhase.Preparation:
                        SetSyntaxDocumentText(ms_domain.ParserScript);
                        ms_task = new LocalParserVBAScriptTask(ms_domain.DomainGUID, whichtask.TaskChainGUID, ms_vbaobjects);
                        whichtask.VBAObjs = null;
                        ms_task.AfterScript += new EventHandler(AfterTestHandler);
                        ms_task.Run();
                        ms_tp = TestPhase.Parser;
                        whichtask.Dispose();
                        break;
                    case TestPhase.Parser:
                        SetSyntaxDocumentText(ms_domain.StorageScript);
                        ms_task = new LocalStorageVBAScriptTask(ms_domain.DomainGUID, whichtask.TaskChainGUID, ms_vbaobjects);
                        whichtask.VBAObjs = null;
                        ms_task.AfterScript += new EventHandler(AfterTestHandler);
                        ms_task.Run();
                        ms_tp = TestPhase.Storage;
                        whichtask.Dispose();
                        break;
                    case TestPhase.Storage:
                        MessageBox.Show("测试结束,请检查日志以确定代码是否正确", "通知", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        whichtask.Dispose();
                        ms_task = null;
                        ms_tps = TestProcessStatus.Ready;
                        RefreshTestToolButtons();                        
                        break;
                }
            }
            else
            {
                whichtask.Dispose();
                ms_task = null;
                ms_tps = TestProcessStatus.Ready;
                RefreshTestToolButtons();              
            }

            
        }
 public static void BeforeTestHandler()
 {
     if (ms_tp == TestPhase.Nonstarted)
     {
         SetSyntaxDocumentText(ms_domain.PreparationScript);
         ms_task = new LocalPreparationVBAScriptTask(ms_domain.DomainGUID, ms_vbaobjects);
         ms_task.AfterScript += new EventHandler(AfterTestHandler);
         ms_tp = TestPhase.Preparation;
         ms_task.Run();
        
     }
 }