• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/sharingeventmanager.php
  • Класс: BitrixCalendarSharingSharingEventManager
  • Вызов: SharingEventManager::createEvent
public function createEvent(bool $sendInvitations = true, string $externalUserName = ''): Result
{
	$result = new Result();

	if (!$this->checkUserAccessibility())
	{
		$result->addError(new Error(Loc::getMessage('EC_SHARINGAJAX_USER_BUSY')));

		return $result;
	}

	$eventId = (new MappersEvent())->create($this->event, [
		'sendInvitations' => $sendInvitations
	])->getId();

	$this->event->setId($eventId);

	if (!$eventId)
	{
		$result->addError(new Error(Loc::getMessage('EC_SHARINGAJAX_EVENT_SAVE_ERROR')));

		return $result;
	}

        $eventLinkParams = [
            'eventId' => $eventId,
            'ownerId' => $this->ownerId,
            'hostId' => $this->hostId,
            'parentLinkHash' => $this->parentLinkHash,
            'expiryDate' => Helper::createSharingLinkExpireDate(
                DateTime::createFromTimestamp($this->event->getEnd()->getTimestamp()),
                SharingLinkHelper::EVENT_SHARING_TYPE
            ),
            'externalUserName' => $externalUserName,
        ];

	$eventLink = (new SharingLinkFactory())->createEventLink($eventLinkParams);

	$result->setData([
		'eventLink' => $eventLink,
		'event' => $this->event,
	]);

	return $result;
}