protected function execute(InputInterface $input, OutputInterface $output)
 {
     $categoryCol = $this->mongo->createCollection(CategoryMeta::SHORT_NAME);
     var_dump($categoryCol->ensureIndex([CategoryMeta::ESHOP_ID => 1, CategoryMeta::HASH => 1], ["unique" => true]));
     $productCol = $this->mongo->createCollection(ProductMeta::SHORT_NAME);
     var_dump($productCol->ensureIndex([ProductMeta::ESHOP_ID => 1, ProductMeta::ITEM_GROUP_ID => 1, ProductMeta::ITEM_ID => 1], ["unique" => true]));
     var_dump($productCol->ensureIndex(["_id" => 1, ProductMeta::V => 1], ["unique" => true]));
     $eshopCol = $this->mongo->createCollection(EshopMeta::SHORT_NAME);
     var_dump($eshopCol->ensureIndex([EshopMeta::SLUG => 1]), ["unique" => true]);
     $f = fopen($input->getArgument("csv"), "r");
     while (list($slug, $url, $feedUrl) = fgetcsv($f)) {
         $eshop = new Eshop();
         $eshop->setName($slug)->setSlug($slug)->setUrl($url)->setFeeds([(new Feed())->setId(new \MongoId())->setUrl($feedUrl)]);
         $eshopDoc = $this->eshopRepository->findAndModify([EshopMeta::SLUG => $slug], EshopMeta::toArray($eshop), ["_id"], ["upsert" => true, "new" => true]);
         var_dump($eshopDoc);
     }
 }
 /**
  * Serializes \CC15\MQ\VO\Import to array
  *
  * @param Import $object
  * @param string $group
  *
  * @throws \InvalidArgumentException
  *
  * @return array
  */
 public static function toArray($object, $group = NULL)
 {
     if ($object === null) {
         return null;
     }
     if (!isset(self::$groups[$group])) {
         throw new \InvalidArgumentException('Group \'' . $group . '\' not supported for ' . 'CC15\\MQ\\VO\\Import' . '.');
     } else {
         $id = self::$groups[$group];
     }
     if (!$object instanceof Import) {
         throw new \InvalidArgumentException('You have to pass object of class CC15\\MQ\\VO\\Import.');
     }
     $output = array();
     if (($id & 1) > 0) {
         $output['eshop'] = EshopMeta::toArray($object->eshop, $group);
     }
     if (($id & 2) > 0 && isset($object->eshop)) {
         $output['eshop'] = EshopMeta::toArray($object->eshop, $group);
     }
     if (($id & 1) > 0) {
         $output['feed'] = FeedMeta::toArray($object->feed, $group);
     }
     if (($id & 2) > 0 && isset($object->feed)) {
         $output['feed'] = FeedMeta::toArray($object->feed, $group);
     }
     if (($id & 1) > 0) {
         $output['tmpFileName'] = $object->tmpFileName;
     }
     if (($id & 2) > 0 && isset($object->tmpFileName)) {
         $output['tmpFileName'] = $object->tmpFileName;
     }
     return $output;
 }
 /**
  * Serializes \CC15\Entity\Product to array
  *
  * @param Product $object
  * @param string $group
  *
  * @throws \InvalidArgumentException
  *
  * @return array
  */
 public static function toArray($object, $group = NULL)
 {
     if ($object === null) {
         return null;
     }
     if (!isset(self::$groups[$group])) {
         throw new \InvalidArgumentException('Group \'' . $group . '\' not supported for ' . 'CC15\\Entity\\Product' . '.');
     } else {
         $id = self::$groups[$group];
     }
     if (!$object instanceof Product) {
         throw new \InvalidArgumentException('You have to pass object of class CC15\\Entity\\Product.');
     }
     $output = array();
     if (($id & 1) > 0 && isset($object->id)) {
         $output['_id'] = $object->id;
     }
     if (($id & 2) > 0 && isset($object->id)) {
         $output['id'] = (string) $object->id;
     }
     if (($id & 1) > 0) {
         $output['v'] = $object->v;
     }
     if (($id & 2) > 0 && isset($object->v)) {
         $output['v'] = $object->v;
     }
     if (($id & 1) > 0) {
         $output['eshopId'] = $object->eshopId;
     }
     if (($id & 2) > 0 && isset($object->eshopId)) {
         $output['eshopId'] = (string) $object->eshopId;
     }
     if (($id & 1) > 0) {
         $output['eshop'] = EshopMeta::toArray($object->eshop, $group);
     }
     if (($id & 2) > 0 && isset($object->eshop)) {
         $output['eshop'] = EshopMeta::toArray($object->eshop, $group);
     }
     if (($id & 1) > 0) {
         $output['itemGroupId'] = $object->itemGroupId;
     }
     if (($id & 2) > 0 && isset($object->itemGroupId)) {
         $output['itemGroupId'] = $object->itemGroupId;
     }
     if (($id & 1) > 0) {
         $output['itemId'] = $object->itemId;
     }
     if (($id & 2) > 0 && isset($object->itemId)) {
         $output['itemId'] = $object->itemId;
     }
     if (($id & 1) > 0) {
         $output['name'] = $object->name;
     }
     if (($id & 2) > 0 && isset($object->name)) {
         $output['name'] = $object->name;
     }
     if (($id & 1) > 0) {
         $output['longName'] = $object->longName;
     }
     if (($id & 2) > 0 && isset($object->longName)) {
         $output['longName'] = $object->longName;
     }
     if (($id & 1) > 0) {
         $output['description'] = $object->description;
     }
     if (($id & 2) > 0 && isset($object->description)) {
         $output['description'] = $object->description;
     }
     if (($id & 1) > 0) {
         $output['url'] = $object->url;
     }
     if (($id & 2) > 0 && isset($object->url)) {
         $output['url'] = $object->url;
     }
     if (($id & 1) > 0) {
         $output['price'] = $object->price;
     }
     if (($id & 2) > 0 && isset($object->price)) {
         $output['price'] = $object->price;
     }
     if (($id & 1) > 0) {
         $output['deliveryDate'] = $object->deliveryDate;
     }
     if (($id & 2) > 0 && isset($object->deliveryDate)) {
         $output['deliveryDate'] = $object->deliveryDate;
     }
     if (($id & 1) > 0) {
         if (!(isset($output['images']) && is_array($output['images']))) {
             $output['images'] = array();
         }
         foreach ((array) $object->images as $k0 => $v0) {
             $output['images'][$k0] = ImageMeta::toArray($v0, $group);
         }
     }
     if (($id & 2) > 0 && isset($object->images)) {
         if (!(isset($output['images']) && is_array($output['images']))) {
             $output['images'] = array();
         }
         foreach ((array) $object->images as $k0 => $v0) {
             $output['images'][$k0] = ImageMeta::toArray($v0, $group);
         }
     }
     if (($id & 1) > 0) {
         $output['ean'] = $object->ean;
     }
     if (($id & 2) > 0 && isset($object->ean)) {
         $output['ean'] = $object->ean;
     }
     if (($id & 1) > 0) {
         $output['isbn'] = $object->isbn;
     }
     if (($id & 2) > 0 && isset($object->isbn)) {
         $output['isbn'] = $object->isbn;
     }
     if (($id & 1) > 0) {
         $output['productno'] = $object->productno;
     }
     if (($id & 2) > 0 && isset($object->productno)) {
         $output['productno'] = $object->productno;
     }
     if (($id & 1) > 0) {
         $output['manufacturer'] = $object->manufacturer;
     }
     if (($id & 2) > 0 && isset($object->manufacturer)) {
         $output['manufacturer'] = $object->manufacturer;
     }
     if (($id & 1) > 0) {
         $output['brand'] = $object->brand;
     }
     if (($id & 2) > 0 && isset($object->brand)) {
         $output['brand'] = $object->brand;
     }
     if (($id & 1) > 0) {
         if (!(isset($output['categoryTexts']) && is_array($output['categoryTexts']))) {
             $output['categoryTexts'] = array();
         }
         foreach ((array) $object->categoryTexts as $k0 => $v0) {
             $output['categoryTexts'][$k0] = $v0;
         }
     }
     if (($id & 2) > 0 && isset($object->categoryTexts)) {
         if (!(isset($output['categoryTexts']) && is_array($output['categoryTexts']))) {
             $output['categoryTexts'] = array();
         }
         foreach ((array) $object->categoryTexts as $k0 => $v0) {
             $output['categoryTexts'][$k0] = $v0;
         }
     }
     if (($id & 1) > 0) {
         if (!(isset($output['categoryIds']) && is_array($output['categoryIds']))) {
             $output['categoryIds'] = array();
         }
         foreach ((array) $object->categoryIds as $k0 => $v0) {
             $output['categoryIds'][$k0] = $v0;
         }
     }
     if (($id & 2) > 0 && isset($object->categoryIds)) {
         if (!(isset($output['categoryIds']) && is_array($output['categoryIds']))) {
             $output['categoryIds'] = array();
         }
         foreach ((array) $object->categoryIds as $k0 => $v0) {
             $output['categoryIds'][$k0] = (string) $v0;
         }
     }
     if (($id & 1) > 0) {
         if (!(isset($output['categories']) && is_array($output['categories']))) {
             $output['categories'] = array();
         }
         foreach ((array) $object->categories as $k0 => $v0) {
             $output['categories'][$k0] = CategoryMeta::toArray($v0, $group);
         }
     }
     if (($id & 2) > 0 && isset($object->categories)) {
         if (!(isset($output['categories']) && is_array($output['categories']))) {
             $output['categories'] = array();
         }
         foreach ((array) $object->categories as $k0 => $v0) {
             $output['categories'][$k0] = CategoryMeta::toArray($v0, $group);
         }
     }
     if (($id & 1) > 0) {
         $output['itemType'] = $object->itemType;
     }
     if (($id & 2) > 0 && isset($object->itemType)) {
         $output['itemType'] = $object->itemType;
     }
     if (($id & 1) > 0) {
         if (!(isset($output['extraMessages']) && is_array($output['extraMessages']))) {
             $output['extraMessages'] = array();
         }
         foreach ((array) $object->extraMessages as $k0 => $v0) {
             $output['extraMessages'][$k0] = $v0;
         }
     }
     if (($id & 2) > 0 && isset($object->extraMessages)) {
         if (!(isset($output['extraMessages']) && is_array($output['extraMessages']))) {
             $output['extraMessages'] = array();
         }
         foreach ((array) $object->extraMessages as $k0 => $v0) {
             $output['extraMessages'][$k0] = $v0;
         }
     }
     return $output;
 }