- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/eventmanager.php
- Класс: Bitrix\Calendar\Sync\Office365\EventManager
- Вызов: EventManager::createInstance
public function createInstance(Core\Event\Event $event, EventContext $context): Result
{
if (
$event->getOriginalDateFrom()
&& $event->getOriginalDateFrom()->format('Ymd') !== $event->getStart()->format('Ymd')
)
{
return $this->moveInstance($event, $context);
}
$result = new Result();
$masterLink = $context->getEventConnection();
try
{
if ($masterLink && $instance = $this->getInstanceForDay($masterLink->getVendorEventId(), $event->getStart()->getDate()))
{
$dto = $this->getService()->updateEvent(
$instance->id,
$this->getEventConverter()->eventToDto($event),
);
if ($dto && !empty($dto->id))
{
$result->setData($this->prepareResultData($dto));
}
else
{
$result->addError(new Main\Error("Error of create instance.", 404));
}
}
else
{
$result->addError(new Main\Error("Instances for event not found", 404));
}
}
catch (ApiException $exception)
{
if ((int)$exception->getCode() !== 400 && (int)$exception->getCode() !== 404)
{
throw $exception;
}
$result->addError(new Main\Error($exception->getMessage(), $exception->getCode()));
}
catch (AuthException $exception)
{
$result->addError(new Main\Error($exception->getMessage(), $exception->getCode()));
}
return $result;
}