/**
  * @Template()
  *
  * http://localhost/Wind/web/app_dev.php/admin/BO/ajax/spot/1/addSite
  */
 public function spotAddSiteAction($id = null, Request $request)
 {
     $em = $this->container->get('doctrine.orm.entity_manager');
     if (isset($id) && $id != -1) {
         $spot = $em->find('LaPoizWindBundle:Spot', $id);
         if (!$spot) {
             return $this->container->get('templating')->renderResponse('LaPoizWindBundle:BackOffice:errorPage.html.twig', array('errMessage' => "No spot find !"));
         }
         $dataWindPrev = new DataWindPrev();
         $dataWindPrev->setSpot($spot);
         $form = $this->createForm('dataWindPrevForm', $dataWindPrev)->add('add to spot', 'submit');
         if ('POST' == $request->getMethod()) {
             //$form->submit($request);
             $form->handleRequest($request);
             //$form->submit($request->request->get($form->getName()));
             if ($form->isValid()) {
                 // form submit
                 $dataWindPrev = $form->getData();
                 // Uniquement url et spot.
                 // Récupération du webSite grace à l'url
                 $website = WebsiteManage::getWebSiteEntityFromURL($dataWindPrev->getUrl(), $em);
                 if ($website != null) {
                     // Check si le couple spot+website n'existe pas déjà ...
                     $dataWindPrevInDB = $em->getRepository('LaPoizWindBundle:DataWindPrev')->getWithWebsiteAndSpot($website, $spot);
                     if ($dataWindPrevInDB === null) {
                         // OK il n'existe pas dans la BD -> on peut l'ajouter
                         $dataWindPrev->setWebsite($website);
                         if ($dataWindPrev->getWebsite()->getNom() == WebsiteGetData::windguruName) {
                             $dataWindPrevWindGuruPro = clone $dataWindPrev;
                             $dataWindPrevWindGuruPro->getWebsite()->removeDataWindPrev($dataWindPrevWindGuruPro);
                             $windGuruProWebsite = $em->getRepository('LaPoizWindBundle:WebSite')->findByNom(WebsiteGetData::windguruProName)[0];
                             $dataWindPrevWindGuruPro->setWebsite($windGuruProWebsite);
                             $this->saveDataWindPrev($spot, $dataWindPrevWindGuruPro, $em);
                         }
                         $this->saveDataWindPrev($spot, $dataWindPrev, $em);
                         return $this->render('LaPoizWindBundle:BackOffice/Spot/Ajax:addSite.html.twig', array('spot' => $spot, 'form' => $form->createView(), 'create' => false));
                     } else {
                         // Le couple spot et website existe dans la BD
                         $form->get('url')->addError(new FormError('Ce site de prévision est déjà existant pour ce spot.'));
                     }
                 } else {
                     // pas trouvé dfe website correspondant
                     $form->get('url')->addError(new FormError('Site internet non géré par laPoiz.com'));
                 }
             }
         }
         return $this->render('LaPoizWindBundle:BackOffice/Spot/Ajax:addSite.html.twig', array('spot' => $spot, 'form' => $form->createView(), 'create' => false));
     } else {
         return $this->container->get('templating')->renderResponse('LaPoizWindBundle:BackOffice:errorPage.html.twig', array('errMessage' => "Miss id of spot... !"));
     }
 }
 /**
  * @Template()
  *
  * http://localhost/Wind/web/app_dev.php/fo/ajax/spot/ask/create/step3/2/1
  *
  * Etape 3: ajout des website
  */
 public function step3Action($id = null, $idContact = null, Request $request)
 {
     $em = $this->container->get('doctrine.orm.entity_manager');
     if (isset($id) && $id != -1) {
         $spot = $em->find('LaPoizWindBundle:Spot', $id);
         if (!$spot) {
             return $this->container->get('templating')->renderResponse('LaPoizWindBundle:FrontOffice:errorPage.html.twig', array('errMessage' => "No spot find !"));
         }
         $dataWindPrev = new DataWindPrev();
         $dataWindPrev->setSpot($spot);
         $form = $this->createForm('dataWindPrevForm', $dataWindPrev)->add('Ajoute et test le site', 'submit');
         if ($request->request->get("spot") == null) {
             if ('POST' == $request->getMethod()) {
                 $form->handleRequest($request);
                 if ($form->isValid()) {
                     // form submit
                     $dataWindPrev = $form->getData();
                     // Récupération du webSite grace à l'url
                     $website = WebsiteManage::getWebSiteEntityFromURL($dataWindPrev->getUrl(), $em);
                     if ($website != null) {
                         $dataWindPrevInDB = $em->getRepository('LaPoizWindBundle:DataWindPrev')->getWithWebsiteAndSpot($website, $spot);
                         if ($dataWindPrevInDB === null) {
                             $dataWindPrev->setWebsite($website);
                             // test si l'url est OK
                             $webSite = WebsiteGetData::getWebSiteObject($dataWindPrev);
                             if ($webSite->isDataWindPrevOK($dataWindPrev)) {
                                 // Il est possible de parser le site de cet URL
                                 if ($dataWindPrev->getWebsite()->getNom() == WebsiteGetData::windguruName) {
                                     $dataWindPrevWindGuruPro = clone $dataWindPrev;
                                     $dataWindPrevWindGuruPro->getWebsite()->removeDataWindPrev($dataWindPrevWindGuruPro);
                                     $windGuruProWebsite = $em->getRepository('LaPoizWindBundle:WebSite')->findByNom(WebsiteGetData::windguruProName)[0];
                                     $dataWindPrevWindGuruPro->setWebsite($windGuruProWebsite);
                                     $this->saveDataWindPrev($spot, $dataWindPrevWindGuruPro, $em);
                                 }
                                 $this->saveDataWindPrev($spot, $dataWindPrev, $em);
                                 // clean the form and display it
                                 $dataWindPrev = new DataWindPrev();
                                 $dataWindPrev->setSpot($spot);
                                 $form = $this->createForm('dataWindPrevForm', $dataWindPrev)->add('Ajoute et test le site', 'submit');
                                 return $this->render('LaPoizWindBundle:FrontOffice:AskNewSpot/blockAddSite.html.twig', array('form' => $form->createView(), 'spot' => $spot, 'idContact' => $idContact));
                             } else {
                                 // URL n'est pas bonne
                                 return new JsonResponse(array('message' => $website->getNom() . ' est déjà spécifié pour ce spot'), 419);
                             }
                         } else {
                             // URL n'est pas bonne
                             return new JsonResponse(array('message' => 'Impossible de parser l URL'), 419);
                         }
                     } else {
                         // URL n'est pas bonne
                         return new JsonResponse(array('message' => 'Cette URL ne correspond à aucun site parser par LaPoizWind.'), 419);
                     }
                 }
                 /*else {
                       return new Response($request);
                   }*/
             }
         }
         return $this->render('LaPoizWindBundle:FrontOffice:AskNewSpot/step3.html.twig', array('spot' => $spot, 'form' => $form->createView(), 'idContact' => $idContact));
     } else {
         return $this->container->get('templating')->renderResponse('LaPoizWindBundle:BackOffice:errorPage.html.twig', array('errMessage' => "Miss id of spot... !"));
     }
 }