Esempio n. 1
0
 public static function getDataFromDataWindPrev(DataWindPrev $dataWindPrev, OutputInterface $output, EntityManager $em)
 {
     $output->write('<info>Spot ' . $dataWindPrev->getSpot()->getNom() . ' - </info>');
     // get each web site
     $output->writeln('<info>site ' . $dataWindPrev->getWebSite()->getNom() . ' -> ' . $dataWindPrev->getUrl() . '</info>');
     // Delete old value
     GetDataCommand::deleteOldPrevisionDate($dataWindPrev, $output, $em);
     // save data
     $websiteGetData = WebsiteGetData::getWebSiteObject($dataWindPrev);
     // return WindguruGetData or MeteoFranceGetData... depend of $dataWindPrev
     $data = $websiteGetData->getDataFromURL($dataWindPrev);
     // array($result,$chrono)
     $output->write('<info>    get data: ' . $data[1] . '</info>');
     $analyse = $websiteGetData->analyseDataFromPage($data[0], $dataWindPrev->getUrl());
     // array($result,$chrono)
     $output->write('<info>    analyse: ' . $analyse[1] . '</info>');
     $transformData = $websiteGetData->transformDataFromTab($analyse[0]);
     // array($result,$chrono)
     $output->write('<info>    transforme data: ' . $transformData[1] . '</info>');
     $saveData = $websiteGetData->saveFromTransformData($transformData[0], $dataWindPrev, $em);
     // array(array $prevDate,$chrono)
     $output->writeln('<info>    save data: ' . $saveData[1] . '</info>');
     $output->writeln('<info>******************************</info>');
 }
 /**
  * @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... !"));
     }
 }