Ejemplo n.º 1
0
 public QuizTakeViewModel Get(QuizTakeInputModel input)
 {
     var quiz = _quizService.GetById(input.QuizId);
     var question = quiz.Questions.First(x => x.QuestionNumber == input.Question);
     var alternatives = question.Alternatives
         .Select(x => new QuizTakeAlternative
             {
                 Number = x.AlternativeNumber,
                 Text = x.AlternativeText
             });
     return new QuizTakeViewModel(input)
         {
             QuizDescription = quiz.Description,
             QuizTitle = quiz.Title,
             QuestionText = question.QuestionText,
             VideoPath = question.VideoPath,
             HasPrevious = quiz.Questions.Any(x => x.QuestionNumber == input.Question - 1),
             HasNext = quiz.Questions.Any(x => x.QuestionNumber == input.Question + 1),
             Alternatives = alternatives
         };
 }
Ejemplo n.º 2
0
        public FubuContinuation Post(QuizTakeInputModel input)
        {
            var quiz = _quizService.GetById(input.QuizId);
            var take = _quizTakeFactory.GetOrCreate(input.TakeId, input.QuizId, _securityContext.CurrentUser.Identity.Name);
            var answer = new Answer(input.Question, quiz.IsAnswer(input.Question, input.SelectedAlternative), input.SelectedAlternative);

            take.UpdateAnswer(answer);

            if (quiz.Questions.Any(x => x.QuestionNumber == input.Question + 1))
            {
                return FubuContinuation.RedirectTo(input.Next, "GET");
            }

            _quizTakeService.Save(take);

            return FubuContinuation.RedirectTo(new QuizTakeResultsInputModel
                {
                    QuizId = input.QuizId,
                    TakeId = input.TakeId
                });
        }
Ejemplo n.º 3
0
 public QuizTakeViewModel(QuizTakeInputModel input)
 {
     _input = input;
     TakeId = input.TakeId;
     QuizId = input.QuizId;
     Question = input.Question;
 }