Exemplo n.º 1
0
 protected override void OnExamItemStateChanged(ExamItemStateChangedMessage message)
 {
     try
     {
         examItemStateChangedMessage = message;
         var AllExamItems = dataService.GetExamItemsList();
         if (message.ExamItem.Name == "综合评判")
         {
             return;
         }
         for (var i = 0; i < AllExamItems.Count(); i++)
         {
             if (AllExamItems[i].ItemCode == message.ExamItem.ItemCode)
             {
                 if (ExamItemState.Progressing == message.NewState)
                 {
                     lstExamItemColor[i] = ColorStateList.ValueOf(Color.DarkBlue);
                 }
                 else if (ExamItemState.Finished == message.NewState)
                 {
                     lstExamItemColor[i] = ColorStateList.ValueOf(Color.Green);
                 }
             }
         }
         //考试状态改变
         RunOnUiThread(ExamItemChange);
     }
     catch (Exception ex)
     {
         Logger.Error("BeiKeOnExamItemStateChanged", ex.Message);
     }
 }
Exemplo n.º 2
0
        private void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            var examManager = Singleton.GetExamManager;

            IsInExamItem = examManager.ExamItems.Any(x => x.State == ExamItemState.Progressing && x.ItemCode != ExamItemCodes.CommonExamItem);
            //过滤掉变更车道和会车,超车,掉头,左转,右转,起步,靠边停车,直线行驶,20150712
            tempExamitemSkip = examManager.ExamItems.Any(x => x.State == ExamItemState.Progressing &&
                                                         (x.ItemCode == ExamItemCodes.ChangeLanes || x.ItemCode == ExamItemCodes.Meeting ||
                                                          x.ItemCode == ExamItemCodes.Overtaking || x.ItemCode == ExamItemCodes.TurnRound ||
                                                          x.ItemCode == ExamItemCodes.TurnLeft || x.ItemCode == ExamItemCodes.TurnRight ||
                                                          x.ItemCode == ExamItemCodes.Start || x.ItemCode == ExamItemCodes.PullOver ||
                                                          x.ItemCode == ExamItemCodes.StraightDriving));
            //变道掉头,超车左右转结束后延迟10S
            if (!tempExamItem)
            {
                if (examManager.ExamItems.Any((x => x.State == ExamItemState.Progressing &&
                                               (x.ItemCode == ExamItemCodes.ChangeLanes ||
                                                x.ItemCode == ExamItemCodes.TurnLeft ||
                                                x.ItemCode == ExamItemCodes.TurnRight ||
                                                x.ItemCode == ExamItemCodes.TurnRound ||
                                                x.ItemCode == ExamItemCodes.Overtaking))))
                {
                    tempExamItem = true;
                }
            }

            IsInExamItem = examManager.ExamItems.Any(x => x.State == ExamItemState.Progressing && x.ItemCode != ExamItemCodes.CommonExamItem);
            //变道,掉头结束时开始计时,用于延时
            if (!finishTime.HasValue && tempExamItem && !IsInExamItem)
            {
                finishTime = DateTime.Now;
            }
        }
Exemplo n.º 3
0
 protected override void OnExamItemStateChanged(ExamItemStateChangedMessage message)
 {
     try
     {
         if (message.ExamItem.Name == "综合评判")
         {
             return;
         }
         for (var i = 0; i < AllExamItems.Count(); i++)
         {
             if (AllExamItems[i].ItemCode == message.ExamItem.ItemCode)
             {
                 if (ExamItemState.Progressing == message.NewState)
                 {
                     lstExamItemColor[i]           = ColorStateList.ValueOf(ExamProgressingColor);
                     lstExamItemBackGroundColor[i] = Color.Blue;
                 }
                 else if (ExamItemState.Finished == message.NewState)
                 {
                     lstExamItemColor[i]           = ColorStateList.ValueOf(ExamFinishedColor);
                     lstExamItemBackGroundColor[i] = Color.Red;
                 }
             }
         }
         RunOnUiThread(ExamItemChange);
         base.OnExamItemStateChanged(message);
     }
     catch (Exception ex)
     {
         Logger.Error("DuoLunOnExamItemStateChanged", ex.Message);
     }
     base.OnExamItemStateChanged(message);
 }
Exemplo n.º 4
0
        protected void OnStateChanged(ExamItemState old, ExamItemState newValue)
        {
            Logger.InfoFormat("项目{0}状态改变:New,{1}-Old,{2}", this.Name, newValue, old);
            var message = new ExamItemStateChangedMessage(newValue, old, this);

            Messenger.Send(message);
        }
Exemplo n.º 5
0
 private void OnExamItemStateChanged(ExamItemStateChangedMessage message)
 {
     try
     {
         examItemStateChangedMessage = message;
         var AllExamItems = dataService.GetExamItemsList();
         if (message.ExamItem.Name == "综合评判")
         {
             //if else if else if
             return;
         }
         for (var i = 0; i < AllExamItems.Count(); i++)
         {
             if (AllExamItems[i].ItemCode == message.ExamItem.ItemCode)
             {
                 if (ExamItemState.Progressing == message.NewState)
                 {
                     lstExamItemColor[i] = ColorStateList.ValueOf(Color.DarkRed);
                 }
                 else if (ExamItemState.Finished == message.NewState)
                 {
                     lstExamItemColor[i] = ColorStateList.ValueOf(Color.Green);
                 }
             }
         }
         //考试状态改变
         RunOnUiThread(ExamItemChange);
     }
     catch (Exception ex)
     {
         Logger.Error(ex, GetType().ToString());
         // Logger.Error("DuoLunOnExamItemStateChanged", ex.Message);
     }
 }
Exemplo n.º 6
0
        protected virtual void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            if (message.ExamItem == null)
            {
                return;
            }

            var examItems = ExamItems.ToArray();
            var itemState = Context.ExamItemStates.FirstOrDefault(x => x.ItemCode == message.ExamItem.ItemCode);

            if (itemState != null)
            {
                if (message.NewState == ExamItemState.Progressing)
                {
                    itemState.Result = ExamItemResult.None;
                }
                itemState.State = message.NewState;
            }
            //KeiWEI
            if (message.NewState == ExamItemState.Finished)
            {
                if (itemState != null)
                {
                    var rules = Context.Rules.Where(x => x.ExamItemCode == itemState.ItemCode).ToArray();
                    if (rules.Length == 0)
                    {
                        itemState.Result = ExamItemResult.Perfect;
                    }
                    else if (rules.Any(x => x.Required))
                    {
                        itemState.Result = ExamItemResult.Failed;
                    }
                    else
                    {
                        itemState.Result = ExamItemResult.Passed;
                    }
                }

                if (examItems.Contains(message.ExamItem))
                {
                    try
                    {
                        lock (ExamItems)
                        {
                            ExamItems.Remove(message.ExamItem);
                        }
                        message.ExamItem.Dispose();
                    }
                    catch (Exception exp)
                    {
                        Logger.ErrorFormat("释放考试项目下{0}发生异常,原因:{1}", message.ExamItem.ItemCode, exp, exp);
                    }
                }
                else
                {
                    Logger.WarnFormat("ExamMananger中不存在考试项目{0}", message.ExamItem);
                }
            }
        }
Exemplo n.º 7
0
        private void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            var examManager = Singleton.GetExamManager;

            IsInExamItem = examManager.ExamItems.Any(x => x.State == ExamItemState.Progressing && x.ItemCode != ExamItemCodes.CommonExamItem);

            _isPullover = examManager.ExamItems.Any(x => x.State == ExamItemState.Progressing && x.ItemCode == ExamItemCodes.PullOver);
        }
Exemplo n.º 8
0
        protected override void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            try
            {
                examItemStateChangedMessage = message;
                var AllExamItems = dataService.GetExamItemsList();
                currentExam = message.ExamItem.Name;
                if (message.ExamItem.Name == "综合评判")
                {
                    return;
                }
                for (var i = 0; i < AllExamItems.Count(); i++)
                {
                    if (AllExamItems[i].ItemCode == message.ExamItem.ItemCode)
                    {
                        if (ExamItemState.Progressing == message.NewState)
                        {
                            //进入起步项目加减挡项目变颜色
                            if (message.ExamItem.ItemCode == ExamItemCodes.Start)
                            {
                                //加减挡颜色
                                for (int j = 0; j < AllExamItems.Count; j++)
                                {
                                    //加减挡
                                    if (AllExamItems[j].ItemCode == ExamItemCodes.ModifiedGear)
                                    {
                                        //加减档位颜色变化
                                        lstExamItemColor[j] = ColorStateList.ValueOf(Color.DarkRed);
                                    }
                                }
                            }
                            lstExamItemColor[i] = ColorStateList.ValueOf(Color.DarkRed);

                            AddTips(string.Format("进入[{0}]项目", AllExamItems[i].ItemName));
                        }
                        else if (ExamItemState.Finished == message.NewState)
                        {
                            lstExamItemColor[i] = ColorStateList.ValueOf(Color.Green);
                            AddTips(string.Format("完成[{0}]项目", AllExamItems[i].ItemName));
                        }
                    }
                }
                //考试状态改变
                RunOnUiThread(ExamItemChange);
            }
            catch (Exception ex)
            {
                Logger.Error(this.GetType().ToString(), ex.Message);
            }
        }
Exemplo n.º 9
0
        protected override void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            base.OnExamItemStateChanged(message);
            //totod:经过张仪测试 这个是可以的! 但是左福川测试 这个不可以 原因不明

            if (InitPointList.Count > 0 && FinishedPointList.Count >= InitPointList.Count)
            {
                //综合评判考试完成也会结束
                if (message.ExamItem.State == ExamItemState.Finished && message.ExamItem.ItemCode != ExamItemCodes.CommonExamItem)
                {
                    Logger.Info("@@完成所有项目直接触发考试结束");
                    Messenger.Send(new ExamFinishingMessage(false));
                }
            }
        }
Exemplo n.º 10
0
        protected override void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            try
            {
                //特殊 这个版本综合评判状态也要加入
                examItemStateChangedMessage = message;
                var AllExamItems = dataService.GetExamItemsList(true);
                Logger.Error(message.ExamItem.ItemCode);
                examItemProcess = examProcess.GetExamProcess(message.ExamItem.ItemCode);
                if (examItemProcess == null)
                {
                    examItemProcess = new ExamItemProcess();
                }
                examItemProcess.ExamItemCodes = message.ExamItem.ItemCode;
                examItemProcess.ExamItemName  = message.ExamItem.Name;

                for (var i = 0; i < AllExamItems.Count(); i++)
                {
                    if (AllExamItems[i].ItemCode == message.ExamItem.ItemCode)
                    {
                        //项目开始
                        if (ExamItemState.Progressing == message.NewState)
                        {
                            examItemProcess.BeginTime = DateTime.Now;
                            examItemProcess.Status    = ExamItemSatatus.Process;
                        }
                        //项目结束
                        else if (ExamItemState.Finished == message.NewState)
                        {
                            examItemProcess.EndTime = DateTime.Now;
                            examItemProcess.Status  = ExamItemSatatus.Finish;
                        }
                        examProcess.AddExamItem(examItemProcess);
                    }
                }
                base.OnExamItemStateChanged(message);
                //考试状态改变
                RunOnUiThread(ExamItemChange);
            }
            catch (Exception ex)
            {
                Logger.Error(ex, this.GetType().ToString());
            }
            // base.OnExamItemStateChanged(message);
        }
Exemplo n.º 11
0
        private void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            try
            {
                examItemStateChangedMessage = message;
                var AllExamItems = dataService.GetExamItemsList();
                if (message.ExamItem.Name == "综合评判")
                {
                    //if else if else if
                    return;
                }
                for (var i = 0; i < AllExamItems.Count(); i++)
                {
                    if (AllExamItems[i].ItemCode == message.ExamItem.ItemCode)
                    {
                        if (ExamItemState.Progressing == message.NewState)
                        {
                            lstExamItemColor[i] = ColorStateList.ValueOf(Color.DarkRed);

                            AddTips(string.Format("进入[{0}]项目", AllExamItems[i].ItemName));
                        }
                        else if (ExamItemState.Finished == message.NewState)
                        {
                            lstExamItemColor[i] = ColorStateList.ValueOf(Color.Green);
                            AddTips(string.Format("完成[{0}]项目", AllExamItems[i].ItemName));
                        }
                    }
                }
                //考试状态改变
                RunOnUiThread(ExamItemChange);
            }
            catch (Exception ex)
            {
                Logger.Error("HuaZhongOnExamItemStateChanged", ex.Message);
            }
        }
Exemplo n.º 12
0
        protected override void OnExamItemStateChanged(ExamItemStateChangedMessage message)
        {
            try
            {
                examItemStateChangedMessage = message;
                if (message.ExamItem.Name == "综合评判")
                {
                    return;
                }
                //公交车站和学校区域当做一个项目
                string itemcode = message.ExamItem.ItemCode == ExamItemCodes.SchoolArea ? ExamItemCodes.BusArea : message.ExamItem.ItemCode;

                for (var i = 0; i < lstExamItem.Count; i++)
                {
                    //顺序不一致
                    if (AllExamItems[i].ItemCode == itemcode)
                    {
                        if (ExamItemState.Progressing == message.NewState)
                        {
                            lstExamItemBackGroundDrawable[i] = Resource.Drawable.shapeSanLianButtonProcess;
                        }
                        else if (ExamItemState.Finished == message.NewState)
                        {
                            //lstExamItemBackGroundDrawable[i] = Resource.Drawable.shapeSanLianButtonFinish;
                            //合格是一种颜色,不合格则为灰色
                            var tempRules = new List <BrokenRuleInfo>();
                            int rulecount = 6;
                            if (lstBorkenRuleInfo.Count > rulecount)
                            {
                                tempRules = lstBorkenRuleInfo.Take(rulecount).ToList();
                            }
                            else
                            {
                                tempRules = lstBorkenRuleInfo;
                            }

                            var results  = tempRules.Where(x => x.ExamItemName.Equals(message.ExamItem.Name));
                            int sumScore = 100;
                            foreach (var result in results)
                            {
                                sumScore -= result.DeductedScores;
                            }
                            if (sumScore >= 90)
                            {
                                lstExamItemBackGroundDrawable[i] = Resource.Drawable.shapeSanLianButtonFinish;
                            }
                            else
                            {
                                lstExamItemBackGroundDrawable[i] = Resource.Drawable.shapeSanLianButtonFinish2;
                            }
                        }
                    }
                }
                RunOnUiThread(ExamItemChange);
                base.OnExamItemStateChanged(message);
            }
            catch (Exception ex)
            {
                Logger.Error(ex, ex.Message);
            }
            base.OnExamItemStateChanged(message);
        }
Exemplo n.º 13
0
 protected virtual void OnExamItemStateChanged(ExamItemStateChangedMessage message)
 {
     currentExam = message.ExamItem.Name;
 }