- Модуль: 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);
}