• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/google/eventmanager.php
  • Класс: BitrixCalendarSyncGoogleEventManager
  • Вызов: EventManager::createRecurrenceEntity
private function createRecurrenceEntity(
	SyncEvent $syncEvent,
	SectionConnection $sectionConnection,
	Context $context,
	EventConnection $masterLink = null
): Result
{
	$eventContext = new EventContext();
	$eventContext->merge($context);

	$eventContext->setSectionConnection($sectionConnection);

	if ($masterLink)
	{
		$eventContext->setEventConnection($masterLink);
		$result = $this->createInstance($syncEvent->getEvent(), $eventContext);
	}
	else
	{
		$result = $this->create($syncEvent->getEvent(), $eventContext);
	}

	if ($result->isSuccess())
	{
		if (!$syncEvent->getEvent()->isDeleted())
		{
			$link = (new EventConnection())
				->setEvent($syncEvent->getEvent())
				->setConnection($sectionConnection->getConnection())
				->setVersion($syncEvent->getEvent()->getVersion())
				->setVendorEventId($result->getData()['event']['id'])
				->setEntityTag($result->getData()['event']['etag'])
			;
			$syncEvent->setEventConnection($link);
		}
		else
		{
			$syncEvent->setAction(Dictionary::SYNC_EVENT_ACTION['delete']);
		}
	}

	return $result;
}