//添加自定义扣分规则
        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);
            }
        }
 private void SpeakBrokenRule(BrokenRuleInfo ruleInfo)
 {
     if (!string.IsNullOrEmpty(ruleInfo.DeductionRule.VoiceFile))
     {
         //Todo:lz
         if (Settings.PlayFail && ruleInfo.DeductionRule.DeductedScores == 100)
         {
             Speaker.PlayAudioAsync(string.Format("{0},不合格", ruleInfo.DeductionRule.VoiceFile, ruleInfo.DeductionRule.DeductedScores));
         }
         else
         {
             Speaker.PlayAudioAsync(string.Format("{0},扣{1}分", ruleInfo.DeductionRule.VoiceFile, ruleInfo.DeductionRule.DeductedScores));
         }
     }
 }