• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/update/update200300.php
  • Класс: BitrixImconnectorUpdateUpdate200300
  • Вызов: Update200300::execute
public function execute(array &$result): bool
{
	$return = false;

	if (Loader::includeModule(self::$moduleId))
	{
		$status = $this->loadCurrentStatus();

		if ($status['count'] > 0)
		{
			$result['steps'] = '';
			$result['count'] = $status['count'];

			$cursor = StatusConnectorsTable::getList([
				'select' => ['ID', 'LINE'],
				'filter' => [
					'=CONNECTOR' => self::$connectorId,
					'=ACTIVE' => 'Y',
				],
				'offset' => 0,
				'limit' => self::PORTION,
				'order' => array('ID' => 'ASC'),
			]);

			$found = false;
			while ($row = $cursor->fetch())
			{
				$deleteResult = BitrixImConnectorConnector::delete($row['LINE'], self::$connectorId);

				if (!$deleteResult->isSuccess())
				{
					Status::delete(self::$connectorId, $row['LINE']);
				}

				$status['lastId'] = $row['ID'];
				$status['number']++;
				$found = true;
			}

			if ($found)
			{
				Option::set(self::$moduleId, self::OPTION_NAME, serialize($status));
				$return = true;
			}

			$result['steps'] = $status['number'];

			if ($found === false)
			{
				Option::delete(self::$moduleId, ['name' => self::OPTION_NAME]);
			}
		}
	}

	return $return;
}