• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/handlers/synceventmergehandler.php
  • Класс: BitrixCalendarSyncHandlersSyncEventMergeHandler
  • Вызов: SyncEventMergeHandler::__invoke
public function __invoke(
	SyncEvent $savedSyncEvent,
	SyncEvent $externalSyncEvent,
	?int $id = null,
	?int $eventConnectionId = null
): SyncEvent
{
	$localEvent = $savedSyncEvent->getEvent();
	$externalEvent = $externalSyncEvent->getEvent();

	$externalEvent
		->setOwner($localEvent->getOwner())
		->setSection($localEvent->getSection())
		->setId($id)
		->setCreator($localEvent->getCreator())
		->setCalendarType($localEvent->getCalendarType())
		->setSpecialLabel($localEvent->getSpecialLabel())
		->setMeetingDescription($localEvent->getMeetingDescription())
		->setEventHost($localEvent->getEventHost())
		->setAttendeesCollection($localEvent->getAttendeesCollection())
		->setIsMeeting($localEvent->isMeeting())
		->setMeetingStatus($localEvent->getMeetingStatus())
		->setRelations($localEvent->getRelations())
		->setVersion($localEvent->getVersion())
		->setRemindCollection($this->prepareReminders($localEvent, $externalEvent))
	;

	$externalEventConnection = $externalSyncEvent->getEventConnection();

	if ($externalEventConnection)
	{
		$externalEventConnection
			->setId($eventConnectionId)
			->setVersion($localEvent->getVersion())
			->setRetryCount(0)
		;
	}

	return $externalSyncEvent;
}