Esempio n. 1
0
        public async Task <ActionResult> Play(string id)
        {
            var quizSubmissionId = Guid.NewGuid().ToString();
            var quiz             = await QuizService.GetQuiz(id);

            var model = new Play
            {
                Id             = quizSubmissionId,
                QuizzardUserId = User.Identity.GetUserId(),
            };



            var partialList = new List <ViewWrapper>();

            foreach (var question in quiz.Questions)
            {
                using (var container = AutofacSetup.Container.BeginLifetimeScope())
                {
                    var controller            = container.ResolveKeyed <QuestionBaseController>(question.QuestionTypeId);
                    var emptySubmissionAnswer = new QuizSubmissionAnswerModel(quizSubmissionId, question);
                    model.Answers.Add(emptySubmissionAnswer);
                    controller.ContextualizeController(nameof(controller.QuestionPlayView));
                    var result = await controller.QuestionPlayView(emptySubmissionAnswer);

                    var viewLocations = result.ViewEngineCollection.FindPartialView(controller.ControllerContext, result.ViewName);
                    result.View = viewLocations.View;
                    model.QuestionPartials.Add(new ViewWrapper((RazorView)viewLocations.View, result.Model));
                }
            }
            model.Quiz   = quiz;
            model.QuizId = quiz.Id;

            return(View(model));
        }
 public override PartialViewResult QuestionPlayView(QuizSubmissionAnswerModel questionModel)
 {
     throw new NotImplementedException();
 }
Esempio n. 3
0
 public abstract PartialViewResult QuestionPlayView(QuizSubmissionAnswerModel questionModel);
Esempio n. 4
0
 public override async Task <PartialViewResult> QuestionPlayView(QuizSubmissionAnswerModel model)
 {
     return(PartialView("QuestionPlayView", model));
 }