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)); }
/// <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); }