Example #1
0
        //保存每次的答题记录并返回新增的记录ID。
        private static int SaveUserQuestionResult(Model.M_QuestionnaireResultDetail question)
        {
            //client=new ScreeningServiceClient();
            var result = screenWebapiClient.AddQuestionResult(question);

            //client.Close();
            return(result);
        }
Example #2
0
        //往某个问卷里添加一个回答记录。
        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);
        }