public static string GetDisplayName(this RQMode model) { if (model == RQMode.Read) { return("閱讀"); } if (model == RQMode.Exam) { return("測驗"); } return(""); }
public static RQMode ToRQModeType(this int val) { try { if (Enum.IsDefined(typeof(RQMode), val)) { RQMode type = (RQMode)val; return(type); } return(RQMode.Unknown); } catch (Exception ex) { return(RQMode.Unknown); } }
public async Task <ActionResult> Index(int mode, int recruit) { var yearRecruits = _dataService.FetchYearRecruits(); RQMode selectMode = mode.ToRQModeType(); if (selectMode == RQMode.Unknown) { //初次載入頁面 var rqIndexModel = new RQIndexViewModel(); rqIndexModel.LoadModeOptions(); rqIndexModel.YearRecruits = yearRecruits.ToList(); //考試科目 var examSubjects = await _subjectsService.FetchExamSubjectsAsync(); rqIndexModel.LoadSubjectOptions(examSubjects); return(Ok(rqIndexModel)); } if (selectMode != RQMode.Read) { ModelState.AddModelError("RQMode", "僅支援閱讀模式"); return(BadRequest(ModelState)); } var recruitsViews = yearRecruits.SelectMany(item => item.SubItems); var selectedRecruitView = recruitsViews.FirstOrDefault(x => x.Id == recruit); if (selectedRecruitView == null) { ModelState.AddModelError("recruit", "年度不存在"); return(BadRequest(ModelState)); } //取得題目與解析的附件 var types = new List <PostType> { PostType.Option, PostType.Resolve }; var attachments = (await _attachmentsService.FetchByTypesAsync(types)).ToList(); var model = new RQViewModel(); var parts = selectedRecruitView.SubItems; if (parts.HasItems()) { foreach (var part in parts) { var partView = await InitRQPartViewModelAsync(part, attachments); model.Parts.Add(partView); } } else { var partView = await InitRQPartViewModelAsync(selectedRecruitView, attachments); model.Parts.Add(partView); } model.LoadTitle(); return(Ok(model)); }