public ActionResult EvaQuest(EvaluationRankActionModel actionModel)
        {
            EvaQuestViewModel evaQuestViewModel = null;
            string            validationSummary = null;

            try
            {
                if (actionModel == null)
                {
                    throw new ArgumentNullException("actionModel");
                }

                RiskEvaQuestionnaireEntity riskEvaQuestEntity = RiskService.GetRiskQuestionnaire(
                    actionModel.QuestId, Session["id"] as string);

                if (riskEvaQuestEntity == null)
                {
                    var ex = new InvalidOperationException("riskEvaQuestEntity not found");
                    ex.Data["QuestId"] = actionModel.QuestId;
                    throw ex;
                }

                evaQuestViewModel = new EvaQuestViewModel()
                {
                    RiskEvaQuestionnaireEntity = riskEvaQuestEntity,
                };
            }
            catch (InvalidOperationException e)
            {
                validationSummary = ConvertValidateMsgByRiskEvaluation(e);
            }
            catch (Exception e)
            {
                logger.Error(e);
                validationSummary = _systemErrorMsg;
            }

            if (!String.IsNullOrEmpty(validationSummary))
            {
                ModelState.AddModelError("", validationSummary);
            }

            return(View(evaQuestViewModel));
        }
Пример #2
0
        /// <summary>
        /// 取得風險評估問卷資料
        /// </summary>
        /// <param name="questId">問卷編號</param>
        /// <param name="userId">用戶ID</param>
        /// <returns>風險評估問卷資料</returns>
        public RiskEvaQuestionnaireEntity GetRiskQuestionnaire(string questId, string userId)
        {
            RiskEvaQuestionnaireEntity result = null;

            if (String.IsNullOrEmpty(questId))
            {
                throw new ArgumentNullException("questId");
            }
            else if (String.IsNullOrEmpty(userId))
            {
                throw new ArgumentNullException("userId");
            }

            RiskEvaluationDO riskEvaluationDO = new RiskEvaluationDAO().GetLatestRiskEvaluation(userId);

            bool canEvaluteRisk = CheckCanEvaluteRisk(riskEvaluationDO);

            if (!canEvaluteRisk)
            {
                var ex = new InvalidOperationException("Not can used risk evaluation");
                ex.Data["canEvaluteRisk"] = canEvaluteRisk;
                throw ex;
            }

            QuestionnaireEntity activeQuestionnaire = QuestService.GetActiveQuestionnaire(questId);

            if (activeQuestionnaire == null)
            {
                var ex = new InvalidOperationException("activeQuestionnaire not found");
                ex.Data["questId"] = questId;
                throw ex;
            }

            result = new RiskEvaQuestionnaireEntity()
            {
                QuestionnaireEntity = activeQuestionnaire,
            };

            return(result);
        }