Пример #1
0
        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"));
        }
Пример #3
0
 public ActionResult Edit(QuizChoice quizChoice)
 {
     if (ModelState.IsValid)
     {
         manager.Entry(quizChoice).State = EntityState.Modified;
         manager.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(RedirectToAction("Index"));
 }
Пример #4
0
 public ActionResult Create(QuizChoice quizChoice)
 {
     if (ModelState.IsValid)
     {
         manager.QuizChoices.Add(quizChoice);
         manager.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(RedirectToAction("Index"));
 }
Пример #5
0
        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"));
        }
Пример #6
0
        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));
        }
Пример #11
0
        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));
        }