示例#1
0
 protected override void OnBrokenRule(BrokenRuleMessage message)
 {
     brokenRuleMessage = message;
     lstBorkenRuleInfo.Add(brokenRuleMessage.RuleInfo);
     RunOnUiThread(ShowBrokenRule);
     base.OnBrokenRule(message);
 }
示例#2
0
        //添加自定义扣分规则
        public void BreakRule(string examItemCode, string examItemName,
                              string ruleCode, string subRuleCode = null, string message = null, int DeductedScores = 0, string DeductedVoiceFile = "")
        {
            var deductionRule = DataService.GetDeductionRule(ruleCode, subRuleCode);

            if (deductionRule == null)
            {
                Logger.WarnFormat("扣分规则:{0}-{1} 在数据库中不存在", ruleCode, subRuleCode);
                return;
            }

            deductionRule.DeductedScores = DeductedScores == 0 ? deductionRule.DeductedScores : DeductedScores;
            deductionRule.VoiceFile      = DeductedVoiceFile == string.Empty ? deductionRule.VoiceFile : DeductedVoiceFile;
            deductionRule.ExamItemName   = deductionRule.VoiceFile;
            var brokenRuleInfo = new BrokenRuleInfo(deductionRule)
            {
                ExamItemCode = examItemCode,
                ExamItemName = examItemName,
                Message      = message,
            };

            //自定义扣分规则
            _breakRules.Add(brokenRuleInfo);
            Score -= brokenRuleInfo.DeductedScores;
            Logger.DebugFormat("项目:{0},扣分代码:{1},扣分:{2},{3}", examItemName, brokenRuleInfo.RuleCode, brokenRuleInfo.DeductedScores, brokenRuleInfo.RuleDescription);
            var brokenRulemessage = new BrokenRuleMessage(brokenRuleInfo);

            Messenger.Send(brokenRulemessage);

            if (VoiceBrokenRule)
            {
                SpeakBrokenRule(brokenRuleInfo);
            }
        }
示例#3
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            SealsEntity sealsEntity = GetEntity();

            if (app.CheckSealName(sealsEntity.ID, sealsEntity.SealName))
            {
                List <BrokenRuleMessage> list    = new List <BrokenRuleMessage>();
                BrokenRuleMessage        message = new BrokenRuleMessage("nameExist", "Seal Name already exists.");
                list.Add(message);
                this.ShowFailMessageToClient(list);
            }
            else
            {
                if (sealsEntity.ID > 0) //edit
                {
                    if (app.Update(sealsEntity))
                    {
                        Redirect(Request.RawUrl, false, true);
                    }
                    else
                    {
                        this.ShowFailMessageToClient(app.BrokenRuleMessages);
                    }
                }
                else
                {
                    List <BrokenRuleMessage> list    = new List <BrokenRuleMessage>();
                    BrokenRuleMessage        message = new BrokenRuleMessage("SealNotExist", "Seal not exists.");
                    list.Add(message);
                    this.ShowFailMessageToClient(list);
                }
            }
        }
示例#4
0
 protected override void OnBrokenRule(BrokenRuleMessage message)
 {
     try
     {
         brokenRuleMessage = message;
         RunOnUiThread(ShowBrokenRule);
     }
     catch (Exception ex)
     {
         Logger.Error("DuoLunBrokenRule", ex.Message);
     }
 }
示例#5
0
 private void OnBrokenRule(BrokenRuleMessage message)
 {
     try
     {
         brokenRuleMessage = message;
         RunOnUiThread(ShowBrokenRule);
     }
     catch (Exception ex)
     {
         Logger.Error("SanLianBrokenRule", ex.Message);
     }
 }
示例#6
0
 private void OnBrokenRule(BrokenRuleMessage message)
 {
     try
     {
         brokenRuleMessage = message;
         RunOnUiThread(ShowBrokenRule);
     }
     catch (Exception ex)
     {
         Logger.Error(ex, GetType().ToString());
     }
 }
示例#7
0
 protected override void OnBrokenRule(BrokenRuleMessage message)
 {
     try
     {
         brokenRuleMessage = message;
         AddTips(string.Format("[{0}][{1}][{2}]", message.RuleInfo.ExamItemName, message.RuleInfo.DeductedScores, message.RuleInfo.RuleName));
         RunOnUiThread(ShowBrokenRule);
     }
     catch (Exception ex)
     {
         Logger.Error(this.GetType().ToString(), ex.Message);
     }
 }
示例#8
0
 private void OnBrokenRule(BrokenRuleMessage message)
 {
     try
     {
         brokenRuleMessage = message;
         AddTips(string.Format("[{0}][{1}][{2}]", message.RuleInfo.ExamItemName, message.RuleInfo.DeductedScores, message.RuleInfo.RuleName));
         RunOnUiThread(ShowBrokenRule);
     }
     catch (Exception ex)
     {
         Logger.Error("HuaZhongBrokenRule", ex.Message);
     }
 }
示例#9
0
        public void ValidateFields <T>(T o, bool throwException, BaseService srv)
        {
            var descriptor = GetTypeDescriptor(typeof(T));

            foreach (PropertyDescriptor propertyDescriptor in descriptor.GetProperties())
            {
                foreach (var validationAttribute in propertyDescriptor.Attributes.OfType <ValidationAttribute>())
                {
                    if (validationAttribute is SFBaseValidationAttribute)
                    {
                        //customized by sunnet framework
                        ValidationResult vr = validationAttribute.GetValidationResult(propertyDescriptor.GetValue(o), new ValidationContext(o, null, null));
                        if (vr != ValidationResult.Success)
                        {
                            if (throwException)
                            {
                                throw new Exception(vr.ErrorMessage);
                            }
                            BrokenRuleMessage msg = new BrokenRuleMessage(propertyDescriptor.Name, vr.ErrorMessage);
                            var displayAtribute   = propertyDescriptor.Attributes.OfType <DisplayAttribute>().FirstOrDefault();
                            if (displayAtribute != null)
                            {
                                msg = new BrokenRuleMessage(displayAtribute.Name, vr.ErrorMessage.Replace(propertyDescriptor.Name, displayAtribute.Name));
                            }
                            srv.AddBrokenRuleMessage(msg);
                        }
                    }
                    else
                    {
                        //standard
                        if (!validationAttribute.IsValid(propertyDescriptor.GetValue(o)))
                        {
                            string exceptionDescription = validationAttribute.FormatErrorMessage(propertyDescriptor.Name);

                            if (throwException)
                            {
                                throw new Exception(exceptionDescription);
                            }

                            BrokenRuleMessage msg = new BrokenRuleMessage(propertyDescriptor.Name, exceptionDescription);
                            var displayAtribute   = propertyDescriptor.Attributes.OfType <DisplayAttribute>().FirstOrDefault();
                            if (displayAtribute != null)
                            {
                                msg = new BrokenRuleMessage(displayAtribute.Name, exceptionDescription.Replace(propertyDescriptor.Name, displayAtribute.Name));
                            }
                            srv.AddBrokenRuleMessage(msg);
                        }
                    }
                }
            }
        }
示例#10
0
        private void OnBrokenRule(BrokenRuleMessage message)
        {
            Context.Rules.Add(message.RuleInfo);

            var itemState = Context.ExamItemStates.FirstOrDefault(x => x.ItemCode == message.RuleInfo.ExamItemCode);

            if (itemState != null)
            {
                if (message.RuleInfo.Required)
                {
                    itemState.Result = ExamItemResult.Failed;
                }
            }
        }
示例#11
0
        private void ValidateBasicRules(T o)
        {
            var descriptor = GetTypeDescriptor(typeof(T));

            foreach (PropertyDescriptor propertyDescriptor in descriptor.GetProperties())
            {
                foreach (var validationAttribute in propertyDescriptor.Attributes.OfType <ValidationAttribute>())
                {
                    if (!validationAttribute.IsValid(propertyDescriptor.GetValue(o)))
                    {
                        BrokenRuleMessage msg = new BrokenRuleMessage(propertyDescriptor.Name, validationAttribute.FormatErrorMessage(propertyDescriptor.Name));
                        AddBrokenRuleMessage(msg);
                    }
                }
            }
        }
示例#12
0
        protected override void OnBrokenRule(BrokenRuleMessage message)
        {
            try
            {
                brokenRuleMessage = message;
                lstBorkenRuleInfo.Add(brokenRuleMessage.RuleInfo);
                RunOnUiThread(ShowBrokenRule);
                base.OnBrokenRule(message);

                if (message.RuleInfo.ExamItemCode != ExamItemCodes.Light)
                {
                    ////合格是一种颜色,不合格则直接结束
                    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.RuleInfo.ExamItemName));
                    int sumScore = 100;
                    foreach (var result in results)
                    {
                        sumScore -= result.DeductedScores;
                    }
                    if (sumScore < 90 && lastFinishItem != message.RuleInfo.ExamItemName)
                    {
                        lastFinishItem = message.RuleInfo.ExamItemName;
                        messager.Send(new MapItemFinishedMessage(message.RuleInfo.ExamItemCode));
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex, this.GetType());
            }
        }
示例#13
0
 private void OnBthExceptionReceive(BrokenRuleMessage message)
 {
     BthExceptionCount++;
 }
示例#14
0
 protected override void OnBrokenRule(BrokenRuleMessage message)
 {
     brokenRuleMessage = message;
     RunOnUiThread(ShowBrokenRule);
 }
示例#15
0
        private void OnBrokenRule(BrokenRuleMessage message)
        {
            brokenRuleMessage = message;

            RunOnUiThread(ShowBrokenRule);
        }
示例#16
0
 protected virtual void OnBrokenRule(BrokenRuleMessage message)
 {
 }