public async Task <ActionResult> StopModule(int moduleHistoryId) { QuizHub.StopModule(moduleHistoryId); await _lectureHistoryHelper.ModulePassed(moduleHistoryId); return(RedirectToAction("activelecture", "Admin")); }
public void ScrambleQuestions() { string correct = "cats"; string[] wrong = { "meow", "meow", "meow" }; List <string[]> possibleAnswers = new List <string[]>(); // TODO dynamically generate possible answers possibleAnswers.Add(new string[] { "cats", "meow", "meow", "meow" }); possibleAnswers.Add(new string[] { "meow", "cats", "meow", "meow" }); possibleAnswers.Add(new string[] { "meow", "meow", "cats", "meow" }); possibleAnswers.Add(new string[] { "meow", "meow", "meow", "cats" }); bool pass = true; for (int i = 0; i < 50; i++) { string[] scramble = QuizHub.ScrambleAnswers(correct, wrong); int index = possibleAnswers.FindIndex(ans => ans == scramble); if (index == -1) { pass = false; } } Assert.IsTrue(pass, "Blah"); Assert.Pass("Passed!"); }
private async void StopQuizOnTimer(object state) { var tuple = (Tuple <int, TimerType>)state; switch (tuple.Item2) { case TimerType.Realtime: QuizHub.StopModule(tuple.Item1); await new LectureHistoryHelper(_context).ModulePassed(tuple.Item1); break; case TimerType.Individual: await new QuizManager(_context).ResovlePassedIndividualQuiz(tuple.Item1); break; case TimerType.Cumulative: await new QuizManager(_context).ResovlePassedCumulativeQuiz(tuple.Item1); break; } }