public void TestAnswerStatistic() { // Prepare data List <QuizChoice> choices = new List <QuizChoice>(); QuizChoice choice1 = new QuizChoice(); choice1.QuizChoiceID = 1; choice1.Choice = "A"; choice1.QuestionID = 1; QuizChoice choice2 = new QuizChoice(); choice2.QuizChoiceID = 2; choice2.Choice = "B"; choice2.QuestionID = 1; choice2.QuizAnswers.Add(new QuizAnswer()); choice2.QuizAnswers.Add(new QuizAnswer()); choices.Add(choice1); choices.Add(choice2); mockUow.Setup(x => x.QuizChoiceRepository.GetAll()).Returns(choices.AsQueryable()); // Test string jsonResult = facade.GetAnswerStatistic(1); Assert.AreEqual("[{\"QuizChoiceID\":1,\"Count\":0},{\"QuizChoiceID\":2,\"Count\":2}]", jsonResult); }
public ActionResult DeleteConfirmed(int id) { QuizChoice quizChoice = db.QuizChoices.Find(id); db.QuizChoices.Remove(quizChoice); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit(QuizChoice quizChoice) { if (ModelState.IsValid) { manager.Entry(quizChoice).State = EntityState.Modified; manager.SaveChanges(); return(RedirectToAction("Index")); } return(RedirectToAction("Index")); }
public ActionResult Create(QuizChoice quizChoice) { if (ModelState.IsValid) { manager.QuizChoices.Add(quizChoice); manager.SaveChanges(); return(RedirectToAction("Index")); } return(RedirectToAction("Index")); }
public ActionResult Delete(int id, FormCollection collection) { QuizChoice quizChoice = manager.QuizChoices.Find(id); if (quizChoice != null) { manager.QuizChoices.Remove(quizChoice); manager.SaveChanges(); } return(RedirectToAction("Index")); }
public void AddQuestion(QuizAddQuestionModelView model) { QuizQuestion question = new QuizQuestion(); question.Title = model.Question; question.QuizID = model.QuizId; question.ObsInd = "N"; QuizChoice choice1 = new QuizChoice(); choice1.Choice = model.Choice1; choice1.ObsInd = "N"; question.QuizChoices.Add(choice1); QuizChoice choice2 = new QuizChoice(); choice2.Choice = model.Choice2; choice2.ObsInd = "N"; question.QuizChoices.Add(choice2); QuizChoice choice3 = new QuizChoice(); choice3.Choice = model.Choice1; choice3.ObsInd = "N"; question.QuizChoices.Add(choice3); QuizChoice choice4 = new QuizChoice(); choice4.Choice = model.Choice4; choice4.ObsInd = "N"; question.QuizChoices.Add(choice4); _uow.QuizQuestionRepository.Insert(question); _uow.Save(); if (model.CorrectAnswer == "choice1") { question.QuizChoice = choice1; } else if (model.CorrectAnswer == "choice2") { question.QuizChoice = choice2; } else if (model.CorrectAnswer == "choice3") { question.QuizChoice = choice3; } else { question.QuizChoice = choice4; } _uow.Save(); }
public ActionResult Edit([Bind(Include = "ID,QuestionID,Text,IsCorrect")] QuizChoice quizChoice) { if (ModelState.IsValid) { db.Entry(quizChoice).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.QuestionID = new SelectList(db.QuizQuestions, "ID", "Text", quizChoice.QuestionID); return(View(quizChoice)); }
public ActionResult Create([Bind(Include = "ID,QuestionID,Text,IsCorrect")] QuizChoice quizChoice) { if (ModelState.IsValid) { db.QuizChoices.Add(quizChoice); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.QuestionID = new SelectList(db.QuizQuestions, "ID", "Text", quizChoice.QuestionID); return(View(quizChoice)); }
// GET: QuizChoices/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } QuizChoice quizChoice = db.QuizChoices.Find(id); if (quizChoice == null) { return(HttpNotFound()); } return(View(quizChoice)); }
// GET: QuizChoices/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } QuizChoice quizChoice = db.QuizChoices.Find(id); if (quizChoice == null) { return(HttpNotFound()); } ViewBag.QuestionID = new SelectList(db.QuizQuestions, "ID", "Text", quizChoice.QuestionID); return(View(quizChoice)); }
public static QuizChoice[] GetWordsConfigClassic(string text) { //JSONのライブラリを使った方が手っ取り早いだろう。 //"\[\s*\"([^\"]*)\"\s*,\s*\"([^\"]*)\"\s*\]" var reg = new Regex("\\{\\s*\\\"question\\\"\\s*:\\s*\\\"([^\\\"]*)\\\"\\s*,\\s*\\\"choice\\\":\\[([^\\[\\]]*)\\]\\s*,\\s*\\\"feedback\\\"\\s*:\\s*\\[\\\"([^\\\"]*)\\\"\\]\\s*,\\s*\\\"answer\\\":\\\"([^\\\"]*)\\\"\\}"); var matches = reg.Matches(text); var words = new List <QuizChoice>(); foreach (Match match in matches) { var choices = new Regex("\\\"([^\\\"]*)\\\"").Matches(match.Groups[2].Value); var choiceList = new List <string>(); foreach (Match choice in choices) { choiceList.Add(choice.Groups[1].Value); } words.Add(QuizChoice.GetQuizChoiceUnescape(match.Groups[1].Value, match.Groups[3].Value, choiceList.ToArray(), match.Groups[4].Value)); } return(words.ToArray()); }
public ActionResult Create(SelectQuizQuestionsViewModel view) { if (ModelState.IsValid) { foreach (var q in view.SelectedQuestions) { //Get the selected quiz template. QuizTemplateQuestion temp = db.QuizTemplateQuestions.Find(Convert.ToInt32(q)); db.Entry(temp).Collection(a => a.Answers).Load(); //Copy question template to new quiz question object and save to database. QuizQuestion quizQuestion = new QuizQuestion() { Text = temp.Text, SessionID = view.Session.ID }; db.QuizQuestions.Add(quizQuestion); db.SaveChanges(); //Copy template answers to new choice objects and save each to database. foreach (var a in temp.Answers) { QuizChoice quizChoice = new QuizChoice() { Text = a.Text, QuestionID = quizQuestion.ID, IsCorrect = a.IsCorrect }; db.QuizChoices.Add(quizChoice); } db.SaveChanges(); } return(RedirectToAction("Index", "Questions", new { sessionId = view.Session.ID })); } return(View(view)); }