• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/update/updatedgoogleeventcleaner.php
  • Класс: BitrixCalendarUpdateUpdatedGoogleEventCleaner
  • Вызов: UpdatedGoogleEventCleaner::execute
public function execute(array &$option)
{
	if (!Loader::includeModule(self::$moduleId))
	{
		return self::FINISH_EXECUTION;
	}

	$linksInfo = $this->getDuplicatedLinkInfo();

	if ($linksInfo->SelectedRowsCount())
	{
		while ($linkInfo = $linksInfo->Fetch())
		{
			$duplicatedLinkId = (int)$linkInfo['FIRST_LINK_ID'];
			$originalLinkId = (int)$linkInfo['LAST_LINK_ID'];

			$events = $this->getEventList([$duplicatedLinkId, $originalLinkId]);
			$duplicatedEvent = $events[$duplicatedLinkId];
			$originalEvent = $events[$originalLinkId];

			if (!$duplicatedEvent)
			{
				$this->deleteDuplicatedLink($duplicatedLinkId);
			}
			if (!$originalEvent)
			{
				$this->deleteDuplicatedLink($originalLinkId);
			}
			if (!$duplicatedEvent || !$originalEvent)
			{
				continue;
			}

			if ($duplicatedEvent['DELETED'] === 'Y')
			{
				$this->deleteDuplicatedLink($duplicatedLinkId);
				continue;
			}

			$this->markEventAsDeleted((int)$duplicatedEvent['ID']);
			$this->deleteDuplicatedLink($duplicatedLinkId);

			if ($originalEvent['DELETED'] === 'Y')
			{
				$this->restoreEvent((int)$originalEvent['PARENT_ID']);
			}
		}

		return self::CONTINUE_EXECUTION;
	}

	CCalendar::ClearCache();
	return self::FINISH_EXECUTION;
}