Esempio n. 1
0
        /// <summary>
        /// 检查状态
        /// </summary>
        public void CheckStatus()
        {
            if (this.Task?.TaskID != 0)
            {
                if (this.Task.TaskStatus == MissionStateEnum.Creating ||
                    this.Task.TaskStatus == MissionStateEnum.Reloading ||
                    this.Task.TaskStatus == MissionStateEnum.Started ||
                    this.Task.TaskStatus == MissionStateEnum.Waiting)
                {
                    var value = WebAPI.Instance.GetStateByTaskID(this.Task.TaskID);

                    if (value.Item1)
                    {
                        this.Task.TaskStatus = value.Item2;
                        this.Serialize();

                        if (this.Task.TaskStatus == MissionStateEnum.Completed)
                        {
                            CaseEventArgs eventArgs = new CaseEventArgs()
                            {
                                EventType = CaseEventArgs.EventTypeEnum.CreateResult,
                                Model     = this
                            };
                            Messenger.Default.Send <CaseEventArgs>(eventArgs);
                        }
                        else
                        {
                            // 启动刷新函数
                            this.StartRefresh();
                        }
                    }
                }
            }
        }
Esempio n. 2
0
 void backgroundRunner_CasePass(object sender, CaseEventArgs e)
 {
     ++caseCount;
     ++passCount;
     progress += delta;
     services.EventBus.FireEvent(this, new StatusEventArgs(Resources.StatusRunning, true, progress));
     services.TestView.SetCaseState(e.Suite, e.Case, TestState.Pass);
 }
Esempio n. 3
0
        void clashingCommand()
        {
            CaseEventArgs eventArgs = new CaseEventArgs()
            {
                EventType = CaseEventArgs.EventTypeEnum.Clash,
                Model     = this
            };

            Messenger.Default.Send <CaseEventArgs>(eventArgs);
        }
Esempio n. 4
0
        void diffcultyCommand()
        {
            CaseEventArgs eventArgs = new CaseEventArgs()
            {
                EventType = CaseEventArgs.EventTypeEnum.Difficulty,
                Model     = this
            };

            Messenger.Default.Send <CaseEventArgs>(eventArgs);
        }
Esempio n. 5
0
        void deleteCommand()
        {
            CaseEventArgs eventArgs = new CaseEventArgs()
            {
                EventType = CaseEventArgs.EventTypeEnum.Delete,
                Model     = this
            };

            Messenger.Default.Send <CaseEventArgs>(eventArgs);
        }
Esempio n. 6
0
        public void Refresh()
        {
            if (this.Task == null)
            {
                return;
            }

            if (this.Task.TaskStatus != MissionStateEnum.Creating ||
                this.Task.TaskStatus != MissionStateEnum.Started ||
                this.Task.TaskStatus != MissionStateEnum.Waiting)
            {
                return;
            }

            // 获取进度
            if (!this.IsAuto)
            {
                var progress = WebAPI.Instance.Progress(this.Task.TaskID);
                if (progress.Item1)
                {
                    GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        this.Task.TotalProcess   = progress.Item2.total;
                        this.Task.MaxProcess     = progress.Item2.top;
                        this.Task.CurrentProcess = progress.Item2.cur;
                        this.Serialize();
                    });
                }
            }

            var value = WebAPI.Instance.GetStateByTaskID(this.Task.TaskID);

            if (value.Item1)
            {
                GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    this.Task.StopTime   = DateTime.Now;
                    this.Task.TaskStatus = value.Item2;
                    this.Serialize();
                    this.Task.RaiseChanged();
                });

                if (value.Item2 == MissionStateEnum.Started)
                {
                    if (Task.RunTime == DateTime.MinValue)
                    {
                        Task.RunTime = DateTime.Now;
                    }

                    if (!this.IsAuto)
                    {
                        var progress = WebAPI.Instance.Progress(this.Task.TaskID);
                        if (progress.Item1)
                        {
                            GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                            {
                                this.Task.TotalProcess   = progress.Item2.total;
                                this.Task.MaxProcess     = progress.Item2.top;
                                this.Task.CurrentProcess = progress.Item2.cur;
                                this.Serialize();
                            });
                        }
                    }
                }

                // 获取状态
                if (value.Item2 == MissionStateEnum.Completed ||
                    value.Item2 == MissionStateEnum.Expired ||
                    value.Item2 == MissionStateEnum.Failed ||
                    value.Item2 == MissionStateEnum.Stopped ||
                    value.Item2 == MissionStateEnum.Cancelled)
                {
                    GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        this.Task.StopTime       = DateTime.Now;
                        this.Task.TotalProcess   = 1;
                        this.Task.CurrentProcess = 1;
                        this.Task.MaxProcess     = 1;
                        this.Serialize();
                        this.Task.RaiseChanged();
                    });

                    if (value.Item2 == MissionStateEnum.Completed)
                    {
                        CaseEventArgs eventArgs = new CaseEventArgs()
                        {
                            EventType = CaseEventArgs.EventTypeEnum.CreateResult,
                            Model     = this
                        };
                        Messenger.Default.Send <CaseEventArgs>(eventArgs);
                    }
                }
            }
            else
            {
                CaseEventArgs eventArgs = new CaseEventArgs()
                {
                    EventType = CaseEventArgs.EventTypeEnum.LogicMessage,
                    Model     = this
                };
                Messenger.Default.Send <CaseEventArgs>(eventArgs);
            }
        }
Esempio n. 7
0
        private void RefreshTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            refreshTimer.Elapsed -= RefreshTimer_Elapsed;

            refreshTimer.Stop();

            try
            {
                var value = WebAPI.Instance.GetStateByTaskID(this.Task.TaskID);
                if (value.Item1)
                {
                    if (value.Item2 != MissionStateEnum.Creating)
                    {
                        GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                        {
                            this.ShowLoading = false;
                        });
                    }

                    GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        this.Task.StopTime   = DateTime.Now;
                        this.Task.TaskStatus = value.Item2;
                        this.Task.RaiseChanged();
                        this.Serialize();
                    });

                    if (value.Item2 == MissionStateEnum.Started)
                    {
                        if (Task.RunTime == DateTime.MinValue)
                        {
                            Task.RunTime = DateTime.Now;
                        }

                        if (!this.IsAuto)
                        {
                            var progress = WebAPI.Instance.Progress(this.Task.TaskID);
                            if (progress.Item1)
                            {
                                GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                                {
                                    this.Task.TotalProcess   = progress.Item2.total;
                                    this.Task.MaxProcess     = progress.Item2.top;
                                    this.Task.CurrentProcess = progress.Item2.cur;
                                });
                            }
                        }
                    }

                    if (value.Item2 == MissionStateEnum.Completed ||
                        value.Item2 == MissionStateEnum.Expired ||
                        value.Item2 == MissionStateEnum.Failed ||
                        value.Item2 == MissionStateEnum.Stopped ||
                        value.Item2 == MissionStateEnum.Cancelled)
                    {
                        GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                        {
                            this.Task.StopTime       = DateTime.Now;
                            this.Task.TotalProcess   = 1;
                            this.Task.CurrentProcess = 1;
                            this.Task.MaxProcess     = 1;
                            this.Task.RaiseChanged();
                            this.ShowLoading = false;
                            this.Serialize();
                        });

                        if (value.Item2 == MissionStateEnum.Completed)
                        {
                            CaseEventArgs eventArgs = new CaseEventArgs()
                            {
                                EventType = CaseEventArgs.EventTypeEnum.CreateResult,
                                Model     = this
                            };
                            Messenger.Default.Send <CaseEventArgs>(eventArgs);
                        }
                    }
                    else
                    {
                        refreshTimer.Start();
                    }
                }
                else
                {
                    GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        this.ShowLoading = false;
                    });

                    CaseEventArgs eventArgs = new CaseEventArgs()
                    {
                        EventType = CaseEventArgs.EventTypeEnum.LogicMessage,
                        Model     = this
                    };
                    Messenger.Default.Send <CaseEventArgs>(eventArgs);
                }
            }
            catch (Exception ex)
            {
                LogManager.Logger.Error(ex.Message.ToString());

                GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    this.ShowLoading = false;
                });
#if DEBUG
                Console.WriteLine(ex.Message);
#endif
            }

            refreshTimer.Elapsed += RefreshTimer_Elapsed;
        }
Esempio n. 8
0
 void backgroundRunner_CasePass(object sender, CaseEventArgs e)
 {
     ++caseCount;
     ++passCount;
     progress += delta;
     services.EventBus.FireEvent(this, new StatusEventArgs(Resources.StatusRunning, true, progress));
     services.TestView.SetCaseState(e.Suite, e.Case, TestState.Pass);
 }
Esempio n. 9
0
 void onCasePass(object sender, CaseEventArgs e)
 {
     if(CasePass != null)
     {
         CasePass.Invoke(sender, e);
     }
 }
Esempio n. 10
0
 void onCaseEnd(object sender, CaseEventArgs e)
 {
     if(CaseEnd != null)
     {
         CaseEnd.Invoke(sender, e);
     }
 }
Esempio n. 11
0
 void onCaseBegin(object sender, CaseEventArgs e)
 {
     if (CaseBegin != null)
     {
         CaseBegin.Invoke(sender, e);
     }
 }