• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/eventmanager.php
  • Класс: BitrixCalendarSyncOffice365EventManager
  • Вызов: EventManager::fetchSectionEvents
public function fetchSectionEvents(SectionConnection $sectionLink): Generator
{
	foreach ($this->getService()->getCalendarDelta($sectionLink) as $deltaData)
	{
		$data = [];
		if (!empty($deltaData[Helper::EVENT_TYPES['deleted']]))
		{
			/** @var EventDto $dto */
			$dto = $deltaData[Helper::EVENT_TYPES['deleted']];
			$data[] = [
				'type' => 'deleted',
				'id' => $dto->id,
				'version' => $dto->changeKey,
				'etag' => $dto->etag,
			];


//				$this->processEventInstance($deltaData[Helper::EVENT_TYPES['deleted']], $sectionLink);
		}
		elseif (!empty($deltaData[Helper::EVENT_TYPES['single']]))
		{
			/** @var EventDto $dto */
			$dto = $deltaData[Helper::EVENT_TYPES['single']];
			$data[] = [
				'type' => 'single',
				'event' => $this->context->getConverter()
					->convertEvent($dto, $sectionLink->getSection()),
				'id' => $dto->id,
				'version' => $dto->changeKey,
				'etag' => $dto->etag,
				'data' => $this->prepareCustomData($dto),
			];
		}
		elseif (!empty($deltaData[Helper::EVENT_TYPES['series']]))
		{
			$data = $this->prepareSeries($deltaData, $sectionLink);

		}

		if ($data)
		{
			yield $data;
		}
	}
}