- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/eventmanager.php
- Класс: Bitrix\Calendar\Sync\Office365\EventManager
- Вызов: EventManager::deleteInstance
public function deleteInstance(Event $event, EventContext $context): Result
{
$result = new Result();
$masterEventId = $context->getEventConnection()
? $context->getEventConnection()->getVendorEventId()
: ($context->sync['masterEventId'] ?? null)
;
if ($masterEventId)
{
$excludeDate = new Main\Type\DateTime(
$context->sync['excludeDate']->getDate()->format('Ymd 000000'),
'Ymd His',
$event->getStartTimeZone()
? $event->getStartTimeZone()->getTimeZone()
: new \DateTimeZone('UTC')
);
try
{
if ($instance = $this->getInstanceForDay($masterEventId, $excludeDate))
{
$this->getService()->deleteEvent(
$instance->id,
);
}
else
{
$result->addError(new Main\Error("Instances for event not found", 404));
}
}
catch (ApiException $e)
{
if ((int)$e->getCode() !== 400 && (int)$e->getCode() !== 404)
{
throw $e;
}
$result->addError(new Main\Error($e->getMessage(), $e->getCode()));
}
catch (AuthException $exception)
{
$result->addError(new Main\Error($exception->getMessage(), $exception->getCode()));
}
}
return $result;
}