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)); }
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); } }
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); } }
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); }