- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/converter/converter.php
- Класс: BitrixCalendarSyncOffice365ConverterConverter
- Вызов: Converter::convertEvent
public function convertEvent(EventDto $eventData, Section $section): Event
{
$start = $this->prepareDate($eventData->start, $eventData->originalStartTimeZone);
$reminders = $this->makeReminders(
$eventData->reminderMinutesBeforeStart,
$eventData->isReminderOn,
$start,
);
$event = (new Event())
->setName($this->prepareName($eventData->subject))
->setOwner($section->getOwner())
->setCreator($section->getOwner())
->setEventHost($section->getOwner())
->setLocation($this->prepareLocation($eventData->location))
->setStart($start)
->setEnd($this->prepareDate($eventData->end, $eventData->originalEndTimeZone))
->setStartTimeZone($this->prepareDateTimezone($eventData->start, $eventData->originalStartTimeZone))
->setEndTimeZone($this->prepareDateTimezone($eventData->end, $eventData->originalEndTimeZone))
->setIsFullDay($eventData->isAllDay)
->setAttendeesCollection($this->prepareAttendeeCollection($section->getOwner()->getId()))
->setRemindCollection($reminders)
->setSection($section)
->setDescription($this->prepareBody($eventData->body, $section->getOwner()->getId()))
->setMeetingDescription($this->prepareDefaultMeeting($section->getOwner()->getId()))
->setAccessibility(EventConverter::ACCESSIBILITY_IMPORT_MAP[$eventData->showAs] ?? null)
->setImportance($eventData->importance)
->setCalendarType(self::CALENDAR_TYPE)
->setIsActive(!$eventData->isCancelled && !$eventData->isDraft)
->setIsDeleted($eventData->isCancelled)
->setRecurringRule($this->makeRecurringRule($eventData->recurrence))
;
if (!empty($eventData->originalStart))
{
$originalDto = new Office365DtoDateTimeDto([
'dateTime' => $eventData->originalStart,
'timeZone' => $eventData->originalStartTimeZone,
]);
$event->setOriginalDateFrom($this->prepareDate($originalDto, $eventData->originalStartTimeZone));
}
// dependence from specific of office all-day events
if ($event->isFullDayEvent())
{
$event->setEnd($event->getEnd()->add("-1 day"));
}
return $event;
}