• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/eventqueuemanager.php
  • Класс: BitrixCalendarSyncManagersEventQueueManager
  • Вызов: EventQueueManager::prepareEventContext
private function prepareEventContext(array $params): EventContext
{
	$queueItem = $params['queueItem'];

	$context = new Context(
		[
			'connection' => $params['connection'],
		]
	);

	$eventLink = (new EventConnection())
		->setId($queueItem['EVENT_CONNECTION_ID'])
		->setEntityTag($queueItem['ENTITY_TAG'])
		->setVendorVersionId($queueItem['VENDOR_VERSION_ID'])
		->setRetryCount($queueItem['RETRY_COUNT'])
		->setLastSyncStatus($queueItem['SYNC_STATUS'])
		->setVendorEventId($queueItem['VENDOR_EVENT_ID'])
		->setData(json_decode($queueItem['DATA'] ?? ''))
		->setVersion((int)$queueItem['VERSION'])
		->setConnection($params['connection'])
		->setEvent($params['event']);

	$sectionLink = $this->mapperFactory->getSectionConnection()->getMap(
		[
			'=SECTION_ID' => (int)$queueItem['SECTION_ID'],
			'=CONNECTION_ID' => (int)$queueItem['CONNECTION_ID'],
		]
	)->fetch();

	$context = (new EventContext())->merge($context)->setEventConnection($eventLink)->setSectionConnection(
			$sectionLink
		);

	return $context;
}