Ejemplo n.º 1
0
 /**
  * Creates fake Quiz and exercise in it
  * @param string $exerciseName Exercise's class name
  */
 public function createForPortalAction($exerciseName)
 {
     $quiz = new \_OurBrand_\Quiz\Domain\Model\Quiz();
     if (!$this->accessHelper->canUserCreateQuiz($this->currentUser, $quiz->getType())) {
         $this->throwStatus(403);
     }
     $quiz->setCreator($this->currentUser->getIdentifier());
     $quiz->setAuthor($this->currentUser->getName());
     $quiz->setPropertiesForPortalQuizWhenCreatesTheQuiz();
     $this->quizRepository->add($quiz);
     $exerciseType = null;
     $exerciseClassName = '\\_OurBrand_\\Quiz\\Domain\\Model\\Exercises\\' . $exerciseName;
     if (class_exists($exerciseClassName)) {
         $newExercise = $this->objectManager->get($exerciseClassName);
     } else {
         throw new \InvalidArgumentException('Model Class not defined: ' . $exerciseName);
     }
     $quiz->addExercise($newExercise);
     $quiz->touch();
     $newExercise->setType($exerciseType);
     $newExercise->setTitle('');
     $this->quizRepository->update($quiz);
     $this->persistenceManager->persistAll();
     $this->redirect('editForPortal', 'exercise', null, array('exercise' => $newExercise));
 }