protected function addCategory($message)
 {
     $categoryName = $message->getValue('categoryName');
     $gallery = $message->getValue('gallery');
     $filePath = $message->getValue('filePath');
     $donwnloadable = $message->getValue('donwnloadable');
     $prefixNameForm = $message->getValue('prefix_name');
     $category = new PhotoCategory();
     $category->setName($categoryName);
     $galleries = $this->enityManager->getRepository('AldorGalleryBundle:Gallery')->findAll();
     foreach ($galleries as $gal) {
         if ($gal->getName() == $gallery) {
             $category->setGallery($gal);
             break;
         }
     }
     $zip = new ExtractZip($filePath);
     $files = $zip->extract();
     if ($donwnloadable) {
         $zipFile = new Media();
         $zipFile->setBinaryContent($zip->getZipPath());
         $zipFile->setEnabled(true);
         $zipFile->setContext('default');
         $zipFile->setProviderName('sonata.media.provider.file');
         $category->setZip($zipFile);
     }
     $this->enityManager->persist($category);
     $prefixName = $categoryName;
     if ($prefixNameForm && $prefixNameForm != '') {
         $prefixName = $prefixNameForm;
     }
     $counter = 0;
     foreach ($files as $pos => $file) {
         $title = explode('/', $pos);
         $fileName = $title[count($title) - 1];
         $fileName = str_replace('DSC_', '', $fileName);
         $title = $prefixName . '-' . explode('.', $fileName)[0];
         $photo = new Photo();
         $photo->setTitle($title);
         $media = new Media();
         $media->setBinaryContent($file);
         $media->setEnabled(true);
         $media->setContext('gallery');
         $media->setName($categoryName . '-' . $fileName);
         $photo->setImage($media);
         $photo->addCategory($category);
         // if (count($photo->getCategories()) == 0) {
         //     print_r("jksdrgt-------------");
         //     throw "err";
         //     return 12313;
         // }
         $this->enityManager->persist($photo);
     }
     $this->enityManager->flush();
     $zip->clean();
 }
 public function load(ObjectManager $em)
 {
     $files = Finder::create()->name('*.*')->in(__DIR__ . '/../data/files');
     $manager = $this->container->get('sonata.media.manager.media');
     $medias = [];
     foreach ($files as $pos => $file) {
         $media = new Media();
         $media->setBinaryContent($file);
         $media->setEnabled(true);
         $manager->save($media, 'gallery', 'sonata.media.provider.image');
         $medias[] = $media;
     }
     $design = new PhotoCategory();
     $design->setName('Grafika');
     $design->setSlug(Inftech::slugify('Grafika'));
     $design->setImage($medias[0]);
     $design->setGallery($em->merge($this->getReference('Gallery-1')));
     $design2 = new PhotoCategory();
     $design2->setName('Grafika2');
     $design2->setSlug(Inftech::slugify('Grafika2'));
     $design2->setImage($medias[1]);
     $design2->setGallery($em->merge($this->getReference('Gallery-1')));
     $design3 = new PhotoCategory();
     $design3->setName('Grafika4');
     $design3->setSlug(Inftech::slugify('Grafika4'));
     $design3->setImage($medias[3]);
     $design3->setGallery($em->merge($this->getReference('Gallery-1')));
     $design4 = new PhotoCategory();
     $design4->setName('Grafika3');
     $design4->setSlug(Inftech::slugify('Grafika3'));
     $design4->setImage($medias[2]);
     $design4->setGallery($em->merge($this->getReference('Gallery-1')));
     $programming = new PhotoCategory();
     $programming->setName('Programowanie');
     $programming->setSlug(Inftech::slugify('Programowanie'));
     $programming->setImage($medias[4]);
     $programming->setGallery($em->merge($this->getReference('Gallery-2')));
     $linux = new PhotoCategory();
     $linux->setName('Linux');
     $linux->setSlug(Inftech::slugify('Linux'));
     $linux->setImage($medias[5]);
     $linux->setGallery($em->merge($this->getReference('Gallery-2')));
     $em->persist($design);
     $em->persist($programming);
     $em->persist($linux);
     $em->persist($design2);
     $em->persist($design3);
     $em->persist($design4);
     $em->flush();
     $this->addReference('PhotoCategory-1', $design);
     $this->addReference('PhotoCategory-4', $design2);
     $this->addReference('PhotoCategory-6', $design3);
     $this->addReference('PhotoCategory-5', $design4);
     $this->addReference('PhotoCategory-2', $programming);
     $this->addReference('PhotoCategory-3', $linux);
 }