• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/outgoingmanager.php
  • Класс: BitrixCalendarSyncManagersOutgoingManager
  • Вызов: OutgoingManager::exportSectionEvents
public function exportSectionEvents(SectionConnection $sectionLink, array $excludeEventIds = []): Result
{
	$result = new Result();
	$resultData = [
		'events' => [
			'deleted' => [],
			'exported' => [],
			'updated' => [],
			'stripped' => [],
			'error' => [],
		]
	];

	$pushResult = static function(array $result) use (&$resultData)
	{
		if (empty($result['entityType']) || empty($result['entity']))
		{
			return;
		}
		if ($result['entityType'] === 'link')
		{
			$resultData['events'][$result['action']] = $result['entity']->getEvent()->getId();
		}
		elseif ($result['entityType'] === 'eventId')
		{
			$resultData['events'][$result['action']] = $result['entity'];
		}
	};

	foreach ($this->fetchSectionEvents($sectionLink->getSection(), $excludeEventIds) as $eventPack)
	{
		$exportResult = $this->exportEvent($eventPack, $sectionLink);
		if ($exportResult->isSuccess())
		{
			$pushResult($exportResult->getData());
		}
		else
		{
			$id = null;

			if ($eventPack['event'])
			{
				$id = $eventPack['event']->getId();
			}
			else if ($eventPack['master'])
			{
				$id = $eventPack['master']->getId();
			}
			$resultData['events']['error'] = $id;
		}
	}

	return $result->setData($resultData);
}