Exemple #1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            ViewModel            = new TakeQuizViewModel();
            quizCompletionParams = (QuizCompletionParams)e.Parameter; // get parameter

            ViewModel.Initialize(quizCompletionParams);
            DataContext = ViewModel;
        }
 // GET: Quiz
 public ActionResult Index(TakeQuizViewModel model, string QuizName)
 {
     if (model.CurrentQuiz == null)
     {
         model = new TakeQuizViewModel();
     }
     model.GetListOfQuestionsByQuiz(QuizName);
     Session["CurrentQuiz"] = model.CurrentQuiz;
     return(View(model));
 }
 public async Task <IActionResult> TakeQuiz(Guid id, TakeQuizViewModel vm)
 {
     Console.WriteLine(id);
     var quizSession = new QuizSession
     {
         QuizId  = id,
         Answers = vm.ChosenIds.Select(e => new Answer
         {
             ChoiceId  = e,
             IsCorrect = e.Equals((_uow.Choices.FirstOrDefaultAsync(e)).Result.Question !.CorrectChoiceId)
         }).ToList(),
Exemple #4
0
        public void QuestionTextIsString()
        {
            // Arrange
            var m = new TakeQuizViewModel
            {
                //Act
                QuestionText = "Test"
            };

            //Assert
            Assert.IsType <string>(m.QuestionText);
        }
Exemple #5
0
        public void CanChangeQuestionText()
        {
            // Arrange
            var m = new TakeQuizViewModel {
                QuestionText = "test"
            };

            //Act
            m.QuestionText = "testing!";

            //Assert
            Assert.Equal("testing!", m.QuestionText);
        }
        public async Task <IActionResult> TakeQuiz(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var vmend = new TakeQuizViewModel
            {
                Quiz = await _uow.Quizzes.FirstOrDefaultAsync(id.Value)
            };

            return(View(vmend));
        }
        //GET: Question Page
        public ActionResult Question(TakeQuizViewModel model, string QuizName)
        {
            model.CurrentQuiz = Session["CurrentQuiz"] as Quiz;
            if (model.CurrentAnswers == null)
            {
                model.GetListOfQuestionsByQuiz(QuizName);
                model.CurrentQuestion = model.GetRandomQuestion();
                model.CurrentAnswers  = model.CurrentQuestion.Answers.ToList();
                model.UsersAnswers    = new Dictionary <Question, Answer>();

                Session["CurrentQuestion"]    = model.CurrentQuestion;
                Session["CurrentAnswers"]     = model.CurrentAnswers;
                Session["AvailableQuestions"] = model.AvailableQuestionsByNumber;
                Session["UsersAnswers"]       = model.UsersAnswers;
            }
            model.CurrentQuestion            = Session["CurrentQuestion"] as Question;
            model.AvailableQuestionsByNumber = Session["AvailableQuestions"] as Dictionary <int, Question>;
            model.UsersAnswers = Session["UsersAnswers"] as Dictionary <Question, Answer>;
            if (model.CurrentAnswers.Any(x => x.IsSelected == true) && model.AvailableQuestionsByNumber.Count != 0)
            {
                model.StoreQuestionToUsersAnswers(model.CurrentQuestion);
                Session["UsersAnswers"] = model.UsersAnswers;
                model.RemoveQuestionFromAvailableList(model.CurrentQuestion);
                if (model.AvailableQuestionsByNumber.Count != 0)
                {
                    model.CurrentQuestion      = model.GetRandomQuestion();
                    model.CurrentAnswers       = model.CurrentQuestion.Answers.ToList();
                    Session["CurrentQuestion"] = model.CurrentQuestion;
                    Session["CurrentAnswers"]  = model.CurrentAnswers;
                }
                foreach (var item in model.CurrentAnswers)
                {
                    item.IsSelected = false;
                }
            }
            if (model.AvailableQuestionsByNumber.Count != 0)
            {
                return(View(model));
            }
            else
            {
                model.UsersAnswers = Session["UsersAnswers"] as Dictionary <Question, Answer>;
                model.CheckUsersAnswers(model.UsersAnswers);
                Session["UsersAnswers"] = model.UsersAnswers;
                return(RedirectToAction("QuizFinish", model));
            }
        }
 //GET: Finish Quiz page
 public ActionResult QuizFinish(string score, TakeQuizViewModel model)
 {
     model.UsersAnswers = Session["UsersAnswers"] as Dictionary <Question, Answer>;
     return(View(model));
 }