src/EventSubscriber/ElExamSubscriber.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\ElExam;
  4. use App\Event\ElExamPreUpdateEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. class ElExamSubscriber implements EventSubscriberInterface
  7. {
  8.     public static function getSubscribedEvents()
  9.     {
  10.         return [
  11.             ElExamPreUpdateEvent::NAME => 'onPreUpdate'
  12.         ];
  13.     }
  14.     public function onPreUpdate(ElExamPreUpdateEvent $event)
  15.     {
  16.         $object $event->getObject();
  17.         $level $object->getExamLevel();
  18.         switch($level) {
  19.             /*
  20.             case ElExam::EXAMLEVEL_TASK:
  21.                 $task = $object->getElTask();
  22.                 $topic = $task->getElLessionTopic();
  23.                 $lession = $topic->getElLession();
  24.                 $object->setElLesstionTopic($topic);
  25.                 $object->setElLession($lession);
  26.                 break;
  27.             case ElExam::EXAMLEVEL_LESSIONTOPIC:
  28.                 $topic = $object->getElLesstionTopic();
  29.                 $lession = $topic->getElLession();
  30.                 $object->setElTask(null);
  31.                 $object->setElLession($lession);
  32.                 break;
  33.             case ElExam::EXAMLEVEL_LESSION:
  34.                 $object->setElLesstionTopic(null);
  35.                 $object->setElTask(null);
  36.                 break;
  37.             case ElExam::EXAMLEVEL_COURSE:
  38.                 $object->setElLession(null);
  39.                 $object->setElLesstionTopic(null);
  40.                 $object->setElTask(null);
  41.                 break;
  42.             */
  43.             case ElExam::EXAMLEVEL_TASK:
  44.                 $object->setElLesstionTopic(null);
  45.                 $object->setElLession(null);
  46.                 $object->setElCourse(null);
  47.                 break;
  48.             case ElExam::EXAMLEVEL_LESSIONTOPIC:
  49.                 $object->setElTask(null);
  50.                 $object->setElLession(null);
  51.                 $object->setElCourse(null);
  52.                 break;
  53.             case ElExam::EXAMLEVEL_LESSION:
  54.                 $object->setElTask(null);
  55.                 $object->setElLesstionTopic(null);
  56.                 $object->setElCourse(null);
  57.                 break;
  58.             case ElExam::EXAMLEVEL_COURSE:
  59.                 $object->setElLession(null);
  60.                 $object->setElLesstionTopic(null);
  61.                 $object->setElTask(null);
  62.                 break;
  63.         }
  64.     }
  65. }