public function run(ImportedEventOccurrenceModel $importedEventOccurrenceModel) { $eventRepo = new EventRepository(); $eventRecurSetRepo = new EventRecurSetRepository(); if ($importedEventOccurrenceModel->hasReoccurence()) { // Have to load it looking for the right time to! $event = $this->loadEventForImportedReoccurredEvent($importedEventOccurrenceModel); } else { // just load it. $event = $this->loadEventForImportedEvent($importedEventOccurrenceModel); } if ($event) { $this->eventsSeenIDs[] = $event->getId(); // Set Existing Event From Import Event URL if ($importedEventOccurrenceModel->getIsDeleted()) { if (!$event->getIsDeleted()) { $eventRepo->delete($event); return true; } } else { if ($event->setFromImportedEventModel($importedEventOccurrenceModel) || $event->getIsDeleted()) { $event->setIsDeleted(false); $eventRepo->edit($event); return true; } } } else { if (!$this->importURL->getIsManualEventsCreation()) { // New Event From Import Event URL $event = $this->newEventFromImportedEventModel($importedEventOccurrenceModel); if ($this->eventRecurSet) { $event->setEventRecurSetId($this->eventRecurSet->getId()); } $eventRepo->create($event, $this->site, null, $this->group, null, $importedEventOccurrenceModel); $this->eventsSeenIDs[] = $event->getId(); if (!$this->eventRecurSet && $this->makeEventRecurSetIfNone) { $this->eventRecurSet = $eventRecurSetRepo->getForEvent($event); } return true; } else { return false; } } return false; }
/** @return \models\EventRecurSetModel **/ public function getForEvent(EventModel $event) { global $DB; $eventRecurSet = $this->loadForEvent($event); if (!$eventRecurSet) { try { $DB->beginTransaction(); $stat = $DB->prepare("INSERT INTO event_recur_set (created_at) VALUES (:created_at) RETURNING id"); $stat->execute(array('created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $eventRecurSet = new EventRecurSetModel(); $eventRecurSet->setId($data['id']); $stat = $DB->prepare("UPDATE event_information SET event_recur_set_id = :ersi WHERE id = :id"); $stat->execute(array('ersi' => $eventRecurSet->getId(), 'id' => $event->getId())); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } } return $eventRecurSet; }