public function markDuplicateWithMetaData(EventModel $duplicateEvent, EventModel $originalEvent, EventEditMetaDataModel $eventEditMetaDataModel)
 {
     global $DB;
     if ($duplicateEvent->getId() == $originalEvent->getId()) {
         return;
     }
     try {
         $DB->beginTransaction();
         $duplicateEvent->setIsDeleted(true);
         $duplicateEvent->setIsDuplicateOfId($originalEvent->getId());
         $this->eventDBAccess->update($duplicateEvent, array('is_deleted', 'is_duplicate_of_id'), $eventEditMetaDataModel);
         $uaeRepo = new UserAtEventRepository();
         $uaerb = new UserAtEventRepositoryBuilder();
         $uaerb->setEventOnly($duplicateEvent);
         foreach ($uaerb->fetchAll() as $uaeDuplicate) {
             if ($uaeDuplicate->getIsPlanAttending() || $uaeDuplicate->getIsPlanMaybeAttending()) {
                 $uaeOriginal = $uaeRepo->loadByUserIDAndEventOrInstanciate($uaeDuplicate->getUserAccountId(), $originalEvent);
                 // does user already have plans for this event? If so leave them.
                 if (!$uaeOriginal->getIsPlanAttending() && !$uaeOriginal->getIsPlanMaybeAttending()) {
                     $uaeOriginal->setIsPlanAttending($uaeDuplicate->getIsPlanAttending());
                     $uaeOriginal->setIsPlanMaybeAttending($uaeDuplicate->getIsPlanMaybeAttending());
                     $uaeOriginal->setIsPlanPublic($uaeDuplicate->getIsPlanPublic());
                     $uaeRepo->save($uaeOriginal);
                 }
             }
         }
         $DB->commit();
     } catch (Exception $e) {
         $DB->rollBack();
     }
 }