public void TestMethod2() { var source = "八hello三一OO"; var str = DataConvertHelper.ChineseNumberAnalysis(source); Console.WriteLine($"source: {source}"); Console.WriteLine($"result: {str}"); }
/// <summary> /// 单选题解析 /// 解析用户回答,获取下一题 /// </summary> /// <param name="uanswer">用户答题对象</param> /// <param name="question">问题对象</param> /// <param name="answer">用户答案文本</param> /// <returns>下一题</returns> private WeiExecuteResult SingleCheckAnalysis(UserAnswerDetail uanswer, Question question, UserAnswerDetail nuseranswerdetail) { decimal?next = null; // decimal.Floor(question.Sort + 1); var qalist = question.QuestionAnswerList.OrderBy(x => x.Sort); string answer = DataConvertHelper.ChineseNumberAnalysis(uanswer.Answer).ToLower(); if (!question.QuestionItemList.Any(x => answer.IndexOf(x.Code.ToLower()) != -1)) { return(WeiExecuteResultHelper.Failed(this._propertyService.GetValue("Answer.NotConsistent"))); } string keycode = null; QuestionAnswer qamodel = null; foreach (var qanswer in qalist) { var tmpQ = qanswer.AnswerKeys.ToLower().Split('|'); keycode = tmpQ.FirstOrDefault(y => { if (string.IsNullOrEmpty(y)) { return(false); } if (y == "*") { return(true); } var tmp2 = y.ToLower().Split('&'); bool result = !tmp2.Any(z => answer.IndexOf(z) == -1); return(result); }); if (!string.IsNullOrEmpty(keycode)) { qamodel = qanswer; break; } } //if (qamodel == null) //{ // return WeiExecuteResultHelper.Failed(this._propertyService.GetValue("Answer.NotConsistent")); //} if (qamodel != null) { nuseranswerdetail.QCode = keycode; //if (qamodel.Next != null) next = qamodel.Next; } else { next = decimal.Floor(question.Sort + 1); } return(WeiExecuteResultHelper.Success(null, next)); }
/// <summary> /// 多选题解析 /// 解析用户回答,获取下一题 /// </summary> /// <param name="uanswer">用户答题对象</param> /// <param name="question">问题对象</param> /// <param name="answer">用户答案文本</param> /// <returns>下一题</returns> private WeiExecuteResult MultiCheckAnalysis(UserAnswerDetail uanswer, Question question, UserAnswerDetail nuseranswerdetail) { decimal?next = null; // decimal.Floor(question.Sort + 1); // 用户的答案数组 //var tmpU = uanswer.Answer.ToCharArray().Distinct().Except(CommonHelper.SPECIALCHARACTERS); var qalist = question.QuestionAnswerList.OrderBy(x => x.Sort); string answer = DataConvertHelper.ChineseNumberAnalysis(uanswer.Answer).ToLower(); if (!question.QuestionItemList.Any(x => answer.IndexOf(x.Code.ToLower()) != -1)) { return(WeiExecuteResultHelper.Failed(this._propertyService.GetValue("Answer.NotConsistent"))); } string keycode = null; QuestionAnswer qamodel = null; switch (question.MatchingType) { case MatchingType.Multiple: { foreach (var qanswer in qalist) { var tmpQ = qanswer.AnswerKeys.ToLower().Split('|'); keycode = tmpQ.FirstOrDefault(y => { if (string.IsNullOrEmpty(y)) { return(false); } if (y == "*") { return(true); } var tmp2 = y.ToLower().Split('&'); bool result = !tmp2.Any(z => answer.IndexOf(z) == -1); return(result); }); if (!string.IsNullOrEmpty(keycode)) { UserAnswerQueue uaqueue = new UserAnswerQueue() { QuestionAnswer_Id = qanswer.Id, UserAnswer_Id = uanswer.UserAnswer_Id, Status = 0, QCode = keycode }; this._userAnswerQueueRepository.Insert(uaqueue); } } } break; default: { foreach (var qanswer in qalist) { var tmpQ = qanswer.AnswerKeys.ToLower().Split('|'); keycode = tmpQ.FirstOrDefault(y => { if (string.IsNullOrEmpty(y)) { return(false); } if (y == "*") { return(true); } var tmp2 = y.ToLower().Split('&'); bool result = !tmp2.Any(z => answer.IndexOf(z) == -1); return(result); }); if (!string.IsNullOrEmpty(keycode)) { qamodel = qanswer; break; } } } break; } //if (qamodel == null) //{ // return WeiExecuteResultHelper.Failed(this._propertyService.GetValue("Answer.NotConsistent")); //} if (qamodel != null) { nuseranswerdetail.QCode = keycode; //if (qamodel.Next != null) next = qamodel.Next; } else { next = decimal.Floor(question.Sort + 1); } //nuseranswerdetail.QCode = keycode; //next = qamodel.Next; return(WeiExecuteResultHelper.Success(null, next)); }