/**
  * @param Event      $event
  * @param Constraint $constraint
  */
 public function validate($event, Constraint $constraint)
 {
     $eventEndDate = $event->getDate()->format('Y-m-d H:i:s');
     $eventEndDate = new \DateTime($eventEndDate);
     $eventEndDate->modify("+" . $event->getDuration() . " minutes")->format('Y-m-d H:i:s');
     // Map result set to my Entity.
     $rsm = new ResultSetMapping();
     $rsm->addEntityResult('AppBundle\\Entity\\Event', 'e');
     $rsm->addFieldResult('e', 'termin', 'date');
     $rsm->addFieldResult('e', 'dauer', 'duration');
     // Using MySQL for better DateTime handling
     $query = $this->em->createNativeQuery("SELECT * FROM veranstaltung e\n            WHERE e.termin < :endDate\n            AND e.termin + INTERVAL e.dauer MINUTE > :startDate", $rsm);
     $query->setParameters(array("endDate" => $eventEndDate, 'startDate' => $event->getDate()->format('Y-m-d H:i:s')));
     $overlappingEntities = $query->getResult();
     /** @var $constraint HasNoDateOverlap */
     if ($overlappingEntities) {
         $this->context->addViolation($constraint->message);
     }
 }