- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/converter/eventconverter.php
- Класс: BitrixCalendarSyncOffice365ConverterEventConverter
- Вызов: EventConverter::eventToDto
public function eventToDto(Event $event): EventDto
{
$endDate = $event->isFullDayEvent()
? (clone $event->getEnd())->add('1 day')
: $event->getEnd();
$data = [
'subject' => $event->getName(),
'body' => [
'contentType' => 'HTML',
'content' => $this->prepareDescription($event),
],
'isAllDay' => $event->isFullDayEvent(),
'start' => [
'dateTime' => $event->getStart()->getDate()->format(Helper::TIME_FORMAT_LONG),
'timeZone' => $this->prepareTimeZone(
$event->getStart(),
$event->getStartTimeZone(),
$event->isFullDayEvent()
),
],
'end' => [
'dateTime' => $endDate->getDate()->format(Helper::TIME_FORMAT_LONG),
'timeZone' => $this->prepareTimeZone(
$endDate,
$event->getEndTimeZone(),
$event->isFullDayEvent()
),
],
'isCancelled' => $event->isDeleted(),
'location' => [
'displayName' => $this->prepareLocation($event->getLocation()),
],
];
if ($event->isRecurrence())
{
$data['recurrence'] = $this->prepareRecurringForDto($event->getRecurringRule(), $event->getStart()->getDate());
}
if ($event->getRemindCollection())
{
$this->prepareReminders($event, $data);
}
if ($accessibility = $this->convertAccessibility($event->getAccessibility()))
{
$data['showAs'] = $accessibility;
}
return new EventDto($data);
}