public async Task <ActionResult> EditDailyQuestion(PDQQuestionViewModel viewModel) { UserProfile profile = await HttpContext.GetUserAsync(); ViewBag.ViewModel = viewModel; var item = models.GetTable <PDQQuestion>().Where(q => q.QuestionID == viewModel.QuestionID).FirstOrDefault(); if (item != null) { viewModel.QuestionID = item.QuestionID; viewModel.Question = item.Question; viewModel.QuestionType = item.QuestionType; viewModel.GroupID = item.GroupID; viewModel.AskerID = item.AskerID; var rightAns = item.PDQSuggestion.Where(s => s.RightAnswer == true).FirstOrDefault(); viewModel.RightAnswerIndex = rightAns != null?item.PDQSuggestion.IndexOf(rightAns) : 0; viewModel.Suggestion = item.PDQSuggestion.Select(s => s.Suggestion).ToArray(); viewModel.BonusPoint = item.PDQQuestionExtension.BonusPoint; } else if (profile.IsCoach()) { viewModel.AskerID = profile.UID; } return(View("~/Views/Activity/Module/EditDailyQuestion.ascx", item)); }
public async Task <ActionResult> CommitDailyQuestion(PDQQuestionViewModel viewModel) { UserProfile profile = await HttpContext.GetUserAsync(); ViewBag.ViewModel = viewModel; //if (!viewModel.AskerID.HasValue) //{ // ModelState.AddModelError("AskerID", "請選擇提問者!!"); // ViewBag.ModelState = ModelState; // return View("EditDailyQuestion", profile); //} //if (!viewModel.BonusPoint.HasValue) //{ // ModelState.AddModelError("BonusPoint", "請輸入回饋點數!!"); // ViewBag.ModelState = ModelState; // return View("EditDailyQuestion", profile); //} viewModel.BonusPoint = 1; if (viewModel.Suggestion == null || viewModel.Suggestion.Length < 1) { ModelState.AddModelError("Suggestion", "請輸入選項!!"); } else { viewModel.Suggestion = viewModel.Suggestion .Select(s => s.GetEfficientString()) .Where(s => s != null).ToArray(); if (viewModel.Suggestion.Length < 4) { ModelState.AddModelError("Suggestion", "請輸入選項!!"); } } if (!viewModel.RightAnswerIndex.HasValue) { ModelState.AddModelError("RightAnswerIndex", "請正確設定答案!!"); } if (!ModelState.IsValid) { ViewBag.ModelState = this.ModelState; return(View("~/Views/Shared/ReportInputError.ascx")); } PDQQuestion item = models.GetTable <PDQQuestion>().Where(q => q.QuestionID == viewModel.QuestionID).FirstOrDefault(); if (item == null) { item = new PDQQuestion { PDQQuestionExtension = new PDQQuestionExtension { BonusPoint = 1, CreationTime = DateTime.Now }, GroupID = 6, QuestionType = (int)Naming.QuestionType.單選題, }; models.GetTable <PDQQuestion>().InsertOnSubmit(item); for (int i = 0; i < viewModel.Suggestion.Length; i++) { item.PDQSuggestion.Add(new PDQSuggestion { }); } } item.AskerID = viewModel.AskerID ?? profile.UID; item.Question = viewModel.Question; item.PDQQuestionExtension.CreationTime = DateTime.Now; //item.QuestionType = viewModel.QuestionType; //item.GroupID = viewModel.GroupID; //item.AskerID = viewModel.AskerID; for (int i = 0; i < viewModel.Suggestion.Length; i++) { item.PDQSuggestion[i].Suggestion = viewModel.Suggestion[i]; item.PDQSuggestion[i].RightAnswer = i == viewModel.RightAnswerIndex; } //item.PDQQuestionExtension.BonusPoint = viewModel.BonusPoint; models.SubmitChanges(); return(Content(new { result = true, item.QuestionID }.JsonStringify(), "application/json")); }