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); } }
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; } }
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); }
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); }
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); } }
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); } } }
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); }
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); } }
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)); } } }
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); }
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); } }
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); }
protected virtual void OnExamItemStateChanged(ExamItemStateChangedMessage message) { currentExam = message.ExamItem.Name; }