Esempio n. 1
0
        public void GetCurrentQuestion(int quizId)
        {
            log.Debug("Curent question request quizId: " + quizId);
            QuizQuestion currentQuestion = _quiz.GetCurrentQuestion(quizId);

            LiveQuizModelView question = MapQuizToViewModel(currentQuestion);

            Clients.Caller.setQuestion(quizId, JsonConvert.SerializeObject(question));
            log.Debug("Broadcast question: " + JsonConvert.SerializeObject(question));
        }
Esempio n. 2
0
        public void Start(int quizId)
        {
            log.Debug("Initiate live quiz start, quizId: " + quizId);

            _quiz.Start(quizId);
            QuizQuestion firstQuestion = _quiz.GetCurrentQuestion(quizId);

            LiveQuizModelView question = MapQuizToViewModel(firstQuestion);

            Clients.All.setQuestion(quizId, JsonConvert.SerializeObject(question));
            log.Debug("Broadcast question: " + JsonConvert.SerializeObject(question));

            if (question != null)
            {
                string stats = _quiz.GetAnswerStatistic(question.QuestionID);
                Clients.All.setStats(quizId, stats);
                log.Debug("Broadcast answer statistic: " + stats);
            }
        }
Esempio n. 3
0
        public void Prev(int quizId)
        {
            log.Debug("Trigger previous question: " + quizId);

            _quiz.Prev(quizId);
            QuizQuestion currentQuestion = _quiz.GetCurrentQuestion(quizId);

            LiveQuizModelView question = MapQuizToViewModel(currentQuestion);

            Clients.All.setQuestion(quizId, JsonConvert.SerializeObject(question));
            log.Debug("Broadcast question: " + JsonConvert.SerializeObject(question));

            if (question != null)
            {
                string stats = _quiz.GetAnswerStatistic(question.QuestionID);
                Clients.All.setStats(quizId, stats);
                log.Debug("Broadcast answer statistic: " + stats);
            }
        }
Esempio n. 4
0
        private LiveQuizModelView MapQuizToViewModel(QuizQuestion question)
        {
            if (question == null)
            {
                return(null);
            }

            LiveQuizModelView questionModel = new LiveQuizModelView();

            questionModel.QuestionID = question.QuizQuestionID;
            questionModel.Title      = question.Title;
            foreach (var c in question.QuizChoices.OrderBy(x => x.QuizChoiceID))
            {
                QuizChoiceModelView choice = new QuizChoiceModelView();
                choice.ChoiceID = c.QuizChoiceID;
                choice.Choice   = c.Choice;
                questionModel.Choice.Add(choice);
            }
            questionModel.TotalQuestions       = _quiz.GetTotalQuestions(question.Quiz.QuizID);
            questionModel.CurrentQuestionIndex = _quiz.GetCurrentQuestionIndex(question.Quiz.QuizID);

            return(questionModel);
        }