/**
  * Reread all imported econtent.
  *
  * @return bool
  * @static
  * throws ilException, ilECSConnectorException
  */
 public static function handleImportReset(ilECSSetting $server)
 {
     global $ilLog;
     include_once 'Services/WebServices/ECS/classes/class.ilECSConnector.php';
     include_once 'Services/WebServices/ECS/classes/class.ilECSConnectorException.php';
     try {
         include_once './Services/WebServices/ECS/classes/class.ilECSEventQueueReader.php';
         include_once './Services/WebServices/ECS/classes/class.ilECSImport.php';
         include_once './Services/WebServices/ECS/classes/class.ilECSExport.php';
         $types = self::getAllEContentTypes();
         $event_queue = new ilECSEventQueueReader($server->getServerId());
         $event_queue->deleteAllEContentEvents($types);
         $list = self::getAllResourceIds($server, $types);
         $imported = ilECSImport::getAllImportedRemoteObjects($server->getServerId());
         $GLOBALS['ilLog']->write(__METHOD__ . ': Imported = ' . print_r($imported, true));
         $GLOBALS['ilLog']->write(__METHOD__ . ': List = ' . print_r($list, true));
         foreach ($list as $resource_type => $link_ids) {
             if (!in_array($resource_type, ilECSUtils::getPossibleRemoteTypes())) {
                 $GLOBALS['ilLog']->write(__METHOD__ . ': Ignoring resource type ' . $resource_type);
                 continue;
             }
             foreach ((array) $link_ids as $link_id) {
                 if (!isset($imported[$link_id])) {
                     // Add create event for not imported econtent
                     $event_queue->add($resource_type, $link_id, ilECSEvent::CREATED);
                 } else {
                     // Add update event for already existing events
                     $event_queue->add($resource_type, $link_id, ilECSEvent::UPDATED);
                 }
                 if (isset($imported[$link_id])) {
                     unset($imported[$link_id]);
                 }
             }
         }
         if (is_array($imported)) {
             // Delete event for deprecated econtent
             include_once 'Services/WebServices/ECS/classes/class.ilECSObjectSettings.php';
             foreach ($imported as $econtent_id => $obj_id) {
                 $type = self::getEventTypeFromObjectType(ilObject::_lookupType($obj_id));
                 if ($type) {
                     $event_queue->add($type, $econtent_id, ilECSEvent::DESTROYED);
                 }
             }
         }
     } catch (ilECSConnectorException $e1) {
         $ilLog->write('Cannot connect to ECS server: ' . $e1->getMessage());
         throw $e1;
     } catch (ilException $e2) {
         $ilLog->write('Update failed: ' . $e2->getMessage());
         throw $e2;
     }
     return true;
 }
 protected function dSynchronizeTrees()
 {
     include_once './Services/WebServices/ECS/classes/Tree/class.ilECSDirectoryTreeConnector.php';
     try {
         $connector = new ilECSDirectoryTreeConnector($this->getServer());
         $res = $connector->getDirectoryTrees();
         foreach ((array) $res->getLinkIds() as $cms_id) {
             include_once './Services/WebServices/ECS/classes/class.ilECSEventQueueReader.php';
             include_once './Services/WebServices/ECS/classes/class.ilECSEvent.php';
             $event = new ilECSEventQueueReader($this->getServer()->getServerId());
             $event->add(ilECSEventQueueReader::TYPE_DIRECTORY_TREES, $cms_id, ilECSEvent::UPDATED);
         }
         $this->ctrl->redirect($this, 'dTrees');
     } catch (Exception $e) {
         ilUtil::sendFailure($e->getMessage(), true);
         $this->ctrl->redirect($this, 'dTrees');
     }
 }