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 }; }
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 }); }
public QuizTakeViewModel(QuizTakeInputModel input) { _input = input; TakeId = input.TakeId; QuizId = input.QuizId; Question = input.Question; }