<?php
namespace App\EventSubscriber;
use App\Entity\ElExam;
use App\Event\ElExamPreUpdateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ElExamSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
ElExamPreUpdateEvent::NAME => 'onPreUpdate'
];
}
public function onPreUpdate(ElExamPreUpdateEvent $event)
{
$object = $event->getObject();
$level = $object->getExamLevel();
switch($level) {
/*
case ElExam::EXAMLEVEL_TASK:
$task = $object->getElTask();
$topic = $task->getElLessionTopic();
$lession = $topic->getElLession();
$object->setElLesstionTopic($topic);
$object->setElLession($lession);
break;
case ElExam::EXAMLEVEL_LESSIONTOPIC:
$topic = $object->getElLesstionTopic();
$lession = $topic->getElLession();
$object->setElTask(null);
$object->setElLession($lession);
break;
case ElExam::EXAMLEVEL_LESSION:
$object->setElLesstionTopic(null);
$object->setElTask(null);
break;
case ElExam::EXAMLEVEL_COURSE:
$object->setElLession(null);
$object->setElLesstionTopic(null);
$object->setElTask(null);
break;
*/
case ElExam::EXAMLEVEL_TASK:
$object->setElLesstionTopic(null);
$object->setElLession(null);
$object->setElCourse(null);
break;
case ElExam::EXAMLEVEL_LESSIONTOPIC:
$object->setElTask(null);
$object->setElLession(null);
$object->setElCourse(null);
break;
case ElExam::EXAMLEVEL_LESSION:
$object->setElTask(null);
$object->setElLesstionTopic(null);
$object->setElCourse(null);
break;
case ElExam::EXAMLEVEL_COURSE:
$object->setElLession(null);
$object->setElLesstionTopic(null);
$object->setElTask(null);
break;
}
}
}