コード例 #1
0
 public function markDuplicateWithMetaData(VenueModel $duplicateVenue, VenueModel $originalVenue, VenueEditMetaDataModel $venueEditMetaDataModel)
 {
     global $DB;
     if ($duplicateVenue->getId() == $originalVenue->getId()) {
         return;
     }
     try {
         $DB->beginTransaction();
         $duplicateVenue->setIsDeleted(true);
         $duplicateVenue->setIsDuplicateOfId($originalVenue->getId());
         $this->venueDBAccess->update($duplicateVenue, array('is_deleted', 'is_duplicate_of_id'), $venueEditMetaDataModel);
         // Move any Events
         $eventEditMetaData = new EventEditMetaDataModel();
         $eventEditMetaData->setUserAccount($venueEditMetaDataModel->getUserAccount());
         $eventRepoBuilder = new EventRepositoryBuilder();
         $eventRepoBuilder->setVenue($duplicateVenue);
         $eventDBAccess = new EventDBAccess($DB, new \TimeSource());
         foreach ($eventRepoBuilder->fetchAll() as $event) {
             $event->setVenueId($originalVenue->getId());
             $eventDBAccess->update($event, array('venue_id'), $eventEditMetaData);
         }
         $DB->commit();
     } catch (Exception $e) {
         $DB->rollBack();
     }
 }