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

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

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

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

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

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

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

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

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

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

	return $return;
}