src/EventListener/Questionary/LessonPassedListener.php line 21

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventListener\Questionary;
  4. use App\Entity\QuestionaryAttempt;
  5. use App\Event\Questionary\LessonPassedEvent;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. class LessonPassedListener
  8. {
  9.     private EntityManagerInterface $em;
  10.     public function __construct(
  11.         EntityManagerInterface $em
  12.     ) {
  13.         $this->em $em;
  14.     }
  15.     public function onLessonPassed(LessonPassedEvent $event): void
  16.     {
  17.         $lesson $event->getLesson();
  18.         $learningProgramm $event->getLearningProgramm();
  19.         if (null === $lesson || null === $learningProgramm || null === $lesson->getQuestionary()) {
  20.             return;
  21.         }
  22.         $student $learningProgramm->getStudent();
  23.         if (null === $student) {
  24.             return;
  25.         }
  26.         $qAttempt = new QuestionaryAttempt();
  27.         $qAttempt->setLessonPassedHomeworkResult($event->getHomeworkResult());
  28.         $qAttempt->setLessonPassedLesson($event->getLesson());
  29.         $qAttempt->setStudent($student);
  30.         $qAttempt->setQuestionary($lesson->getQuestionary());
  31.         $qAttempt->setIsDone(false);
  32.         $qAttempt->setTitle($lesson->getTitle());
  33.         $this->em->persist($qAttempt);
  34.         $this->em->flush();
  35.     }
  36. }