/** * Development function * @param \_OurBrand_\Quiz\Domain\Model\StudentQuizSession $studentQuizSession */ public function ResetStudentQuizSessionAction($studentQuizSession) { $quiz = $studentQuizSession->getQuizSession()->getQuiz(); foreach ($quiz->getExercises() as $exercise) { $previousAnswers = $this->answerRepository->findBySessionAndExercise($studentQuizSession, $exercise); $trackers = $this->trackStudentAudioPlaybackRepository->findBySessionAndExercise($studentQuizSession, $exercise); if ($previousAnswers->count() > 0) { foreach ($previousAnswers as $previousAnswer) { $this->answerRepository->remove($previousAnswer); } } if ($trackers->count() > 0) { foreach ($trackers as $tracker) { $this->trackStudentAudioPlaybackRepository->remove($tracker); } } } $studentQuizSession->setStartTime(null); $studentQuizSession->setCurrentTime(null); $studentQuizSession->setFinishedTime(null); $studentQuizSession->setTimesResumed(0); $this->studentQuizSessionRepository->update($studentQuizSession); $this->persistenceManager->persistAll(); $this->redirect('studentindex'); }
/** * Stop a studentQuizSession, which means the just one student. * * @param \_OurBrand_\Quiz\Domain\Model\StudentQuizSession $studentQuizSession * @param bool $writeCommandFile * @return int|string */ public function stopStudentQuizSession(\_OurBrand_\Quiz\Domain\Model\StudentQuizSession $studentQuizSession, $writeCommandFile = TRUE) { $out = 1; $studentQuizSession->setStopTime(new \TYPO3\Flow\Utility\Now()); $this->studentQuizSessionRepository->update($studentQuizSession); if ($writeCommandFile) { $out = $this->writeCommandFile($studentQuizSession->getQuizSession()); } return $out; }
/** * @param \_OurBrand_\Quiz\Domain\Model\StudentQuizSession $studentQuizSession */ public function updateProgress($studentQuizSession) { $studentQuizSession->setCurrentTime(new \DateTime()); $this->studentQuizSessionRepository->update($studentQuizSession); }