/**
  * Edition d'événement
  * @param $idEvent
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
  */
 public function eventEditAction($idEvent, Request $request)
 {
     // Formulaire barre de recherche (header)
     $formSearchBar = $this->createForm(new SearchType());
     $user = $this->getUser();
     if (!$user->hasRole('ROLE_ADMIN') and !$user->hasRole('ROLE_SUPER_ADMIN')) {
         $this->addFlash('warning', 'Permission refusée');
         return $this->redirect($this->generateUrl('agil_hall_homepage'));
     }
     $em = $this->getDoctrine()->getManager();
     $event = $em->getRepository('AGILHallBundle:AgilEvent')->find($idEvent);
     $files = new ArrayCollection();
     /*$fs = new Filesystem();
       foreach($event->getPhotos() as $photo) {
           $files->add(new UploadedFile($photo->getPhotoUrl(), $photo->getPhotoTitle(), null, 1000000, null, false));
       }*/
     $form = $this->createForm(new EditEventType($files), null);
     $form->handleRequest($request);
     if ($form->isValid()) {
         if ($event->getEventTitle() != $form->get('eventTitle')->getData()) {
             $eventTmp = $em->getRepository('AGILHallBundle:AgilEvent')->findBy(array('eventTitle' => $form->get('eventTitle')->getData()));
             if (!empty($eventTmp)) {
                 $this->addFlash('warning', 'Titre de l\'événement déjà utilisé.');
                 return $this->redirect($this->generateUrl('agil_hall_event_edit'));
             }
         }
         $event->setEventTitle($form->get('eventTitle')->getData());
         $event->setEventText($form->get('eventText')->getData());
         $event->setEventDateEnd($form->get('eventDateEnd')->getData());
         $event->setEventDate($form->get('eventDate')->getData());
         // les tags
         $tagsArrayString = explode(" ", $form->get('tags')->getData());
         $tagsManager = $this->get('agil_default.tags');
         foreach ($tagsArrayString as $tag) {
             $tagsManager->insertTag($tag);
         }
         $tagsManager->insertDone();
         $event->removeTags();
         $em->persist($event);
         $em->flush();
         $event->setTags($em->getRepository("AGILDefaultBundle:AgilTag")->findByTagName($tagsArrayString));
         if ($form->get('photos')->getData()[0] != null) {
             $nbInputs = 0;
             $inputPhoto = $form->get('photos')->getData()[$nbInputs];
             while (!empty($inputPhoto)) {
                 $array = new ArrayCollection();
                 foreach ($inputPhoto as $item) {
                     if ($item != null && $item != "") {
                         if ($item->guessExtension() != "jpeg" && $item->guessExtension() != "png" && $item->guessExtension() != "gif") {
                             $this->addFlash('warning', 'Erreur ! Le format de l\'image ne convient pas ! (formats autorisés: jpeg,png,gif)');
                             return $this->redirect($this->generateUrl('agil_hall_event_edit'));
                         } else {
                             if ($item->getClientSize() > 1024000) {
                                 $this->addFlash('warning', 'Erreur ! La taille de l\'image dépasse la limite ! (limite autorisée: 1Mo)');
                                 return $this->redirect($this->generateUrl('agil_hall_event_edit'));
                             }
                         }
                         $fileName = md5(uniqid()) . '.' . $item->guessExtension();
                         $dir = $this->container->getParameter('kernel.root_dir') . '/../web/img/hall';
                         $item->move($dir, $fileName);
                         $photo = new AgilPhoto();
                         $photo->setPhotoUrl($fileName);
                         $photo->setPhotoTitle($item->getClientOriginalName());
                         $array->add($photo);
                         $photo->setEvent($event);
                         $em->persist($photo);
                     }
                 }
                 $nbInputs++;
                 if (!empty($form->get('photos')->getData()[$nbInputs])) {
                     $inputPhoto = $form->get('photos')->getData()[$nbInputs];
                 } else {
                     $inputPhoto = null;
                 }
             }
             $event->setImages($array);
         }
         $em->persist($event);
         $em->flush();
         $this->addFlash('success', 'Evénement modifié');
         return $this->redirect($this->generateUrl('agil_hall_event', array('idEvent' => $event->getEventId())));
     }
     $form->get('eventTitle')->setData($event->getEventTitle());
     $form->get('eventText')->setData($event->getEventText());
     $form->get('eventDate')->setData($event->getEventDate());
     $form->get('eventDateEnd')->setData($event->getEventDateEnd());
     //$form->get('photos')->setData($event->getPhotos());
     $tagArray = "";
     foreach ($event->getTags() as $tag) {
         $tagArray .= $tag->getTagName() . " ";
     }
     $form->get('tags')->setData($tagArray);
     return $this->render('AGILHallBundle:Event:event_edit.html.twig', array('form' => $form->createView(), 'event' => $event, 'formSearchBar' => $formSearchBar->createView()));
 }
 /**
  * @param AgilPhoto $photo
  * @return $this
  */
 public function addPhoto(AgilPhoto $photo)
 {
     $this->photos[] = $photo;
     $photo->setEvent($this);
     return $this;
 }