コード例 #1
0
 /**
  * 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');
 }
コード例 #2
0
 /**
  * Init tracker if in exam mode
  *
  * @param \_OurBrand_\Quiz\Domain\Model\Exercise $exercise
  *
  * @return json
  */
 public function getDictationAudioAction($exercise)
 {
     $audioFiles = array();
     foreach ($exercise->getSnippets() as $snippet) {
         if ($snippet->getAudio() && $snippet->getAudio()->getOriginalResource()) {
             $audioFiles[] = array('src' => base64_encode($this->resourcePublisher->getPersistentResourceWebUri($snippet->getAudio()->getOriginalResource())));
         }
     }
     if ($this->studentQuizSession) {
         $tracker = $this->trackStudentAudioPlaybackRepository->findBySessionAndExercise($this->studentQuizSession, $exercise)->getFirst();
         if (!is_a($tracker, '\\_OurBrand_\\Quiz\\Domain\\Model\\TrackStudentAudioPlayback')) {
             $tracker = new TrackStudentAudioPlayback();
             $tracker->setExercise($exercise);
             $tracker->setStudentQuizSession($this->studentQuizSession);
             $tracker->setTimeElapsed(0);
             $tracker->setStatus(0);
             $this->trackStudentAudioPlaybackRepository->add($tracker);
             $this->persistenceManager->persistAll();
         }
         return json_encode(array('elapsedTime' => $tracker->getTimeElapsed(), 'status' => $tracker->getStatus(), 'trackerId' => $this->persistenceManager->getIdentifierByObject($tracker), 'audioFiles' => $audioFiles));
     }
     return json_encode(array('status' => 0, 'audioFiles' => $audioFiles));
 }