//保存每次的答题记录并返回新增的记录ID。 private static int SaveUserQuestionResult(Model.M_QuestionnaireResultDetail question) { //client=new ScreeningServiceClient(); var result = screenWebapiClient.AddQuestionResult(question); //client.Close(); return(result); }
//往某个问卷里添加一个回答记录。 public static bool AddQuestionToQuestionnaire(Model.M_QuestionnaireResultDetail question, string questionnaireCode) { Model.M_QuestionnaireUserDetail questionnaire = GetQuestionnaireByCode(questionnaireCode); if (questionnaire == null) { return(false); } IList <Model.M_QuestionnaireResultDetail> questions = questionnaire.Questions; //foreach (QuestionnaireResultDetail qust in questions) //{ // if (qust.QuestionCode == question.QuestionCode) // { // //第二次添加同一个题目时,更新题目答案。 // qust.QuestionResult = question.QuestionResult; // return false; // } //} //第二次添加同一个题目时,更新题目答案。 bool flag = false; for (int i = 0; i < questions.Count; i++) { if (questions[i].QuestionCode == question.QuestionCode) { //答案项 questions[i].QuestionResult = question.QuestionResult; //题目分数 questions[i].QuestionScore = question.QuestionScore; //所属大题加权分 questions[i].PQuestionWeightScore = question.PQuestionWeightScore; //更新至数据库 //client = new ScreeningServiceClient(); //如果登录 if (LoginInfo.GetInstance().UserId > 0) { bool result = screenWebapiClient.UpdateQuestionnaireResult(questions[i].QuestionUserId, questions[i].QuestionCode, questions[i].QuestionResult, questions[i].QuestionScore, questions[i].PQuestionWeightScore); //client.Close(); } //如果是更新操作,将标记设为true flag = true; } } if (flag) { //终止 return(false); } //往服务端添加记录 question.PatientId = LoginInfo.GetInstance().UserId; question.FamilyMemberID = LoginInfo.GetInstance().FamilyMemberID; question.QuestionUserId = questionnaire.QuestionnaireRecodId; if (question.PatientId > 0) { try { //往服务端添加记录,可能存在网络不好的情况 //question.QuestionResultId = SaveUserQuestionResult(question); question.QuestionnaireResultDetailId = SaveUserQuestionResult(question); } catch (Exception ex) { throw new Exception("网络连接失败。" + ex); } } questions.Add(question); return(true); }