Exemple #1
0
 /**
  * Extrait les membre des donnes de battlnet et et les transforme en objet utilisable de notre coté.
  * @param type $aDataGuildeBnet
  * @param \Core\Model\Guildes $oGuilde
  * @param array $aOptionFiltre lvlMin|
  * @return array de \Core\Model\Personnages
  * @throws Exception
  */
 public static function extraitMembreDepuisBnetGuilde($aDataGuildeBnet, \Commun\Model\Guildes $oGuilde, array $aOptionFiltre)
 {
     if (!isset($aDataGuildeBnet)) {
         throw new Exception("Les datas pour l'extraction de membres issues de bnet ne peuvent être vide.");
     }
     $aPersonnage = array();
     $lvlMin = 0;
     if (isset($aOptionFiltre)) {
         if (isset($aOptionFiltre['lvlMin'])) {
             $lvlMin = $aOptionFiltre['lvlMin'];
         }
     }
     if (isset($aDataGuildeBnet['members'])) {
         foreach ($aDataGuildeBnet['members'] as $aCharacter) {
             if ($aCharacter['character']['level'] >= $lvlMin) {
                 //                    $oPersonnage = new \Commun\Model\Personnages();
                 //                    $oPersonnage->setNom($aCharacter['character']['name']);
                 //                    $oPersonnage->setNiveau($aCharacter['character']['level']);
                 //                    $oPersonnage->setIdGuildes($oGuilde->getIdGuildes());
                 //                    $oPersonnage->setIdClasses($aCharacter['character']['class']);
                 //                    //$oPersonnage->setIdFaction($aCharacter['character']['faction']);
                 //                    $oPersonnage->setIdFaction($oGuilde->getIdFaction());
                 //                    $oPersonnage->setIdRace($aCharacter['character']['race']);
                 //                    $oPersonnage->setGenre($aCharacter['character']['gender']);
                 //                    $oPersonnage->setRoyaume($aCharacter['character']['realm']);
                 //                    $oPersonnage->setminiature($aCharacter['character']['thumbnail']);
                 //                    $aPersonnage[] = $oPersonnage;
                 $oPersonnage = \Core\Util\ParserWow::extraitPersonnageDepuisBnet($aCharacter['character']);
                 $oPersonnage->setIdGuildes($oGuilde->getIdGuildes());
                 $oPersonnage->setIdFaction($oGuilde->getIdFaction());
                 $aPersonnage[] = $oPersonnage;
             }
         }
         return $aPersonnage;
     }
 }
Exemple #2
0
 /**
  * Sauvegarde ou met a jour la guilde passée.
  * @param \Commun\Model\Guildes $oGuilde
  * @return \Commun\Model\Guildes
  */
 public function saveOrUpdateGuilde($oGuilde)
 {
     $oGuilde->setNom(strtolower($oGuilde->getNom()));
     try {
         $oTabGuilde = $this->selectBy(array("idGuildes" => $oGuilde->getIdGuildes()));
         if (!$oTabGuilde) {
             $oTabGuilde = $this->selectBy(array("nom" => $oGuilde->getNom(), "serveur" => $oGuilde->getServeur(), "idFaction" => $oGuilde->getIdFaction()));
         }
     } catch (\Exception $exc) {
         throw new DatabaseException(1000, 4, $this->_getServiceLocator(), $oGuilde->getArrayCopy(), $exc);
     }
     // si n'existe pas on insert
     if (!$oTabGuilde) {
         try {
             $this->insert($oGuilde);
             $oGuilde->setIdGuildes($this->lastInsertValue);
         } catch (\Exception $exc) {
             throw new DatabaseException(1000, 2, $this->_getServiceLocator(), $oGuilde->getArrayCopy(), $exc);
         }
     } else {
         try {
             // sinon on update
             $oGuilde->setIdGuildes($oTabGuilde->getIdGuildes());
             $this->update($oGuilde);
         } catch (\Exception $exc) {
             throw new DatabaseException(1000, 1, $this->_getServiceLocator(), $oGuilde->getArrayCopy(), $exc);
         }
     }
     return $oGuilde;
 }
 /**
  * Sauvegarde ou met a jour le personnage passé.
  * @param \Commun\Model\Personnages $oPersonnage
  * @param \Commun\Model\Guildes $oGuilde
  * @return  \Core\Model\Personnages
  */
 public function saveOrUpdatePersonnage($oPersonnage, $oGuilde = null)
 {
     try {
         $oPersonnage->setNom(strtolower($oPersonnage->getNom()));
         $oPersonnage->setRoyaume(strtolower($oPersonnage->getRoyaume()));
         //recherche si le personnage existe
         try {
             $oTabPersonnage = $this->selectBy(array("idPersonnage" => $oPersonnage->getIdPersonnage()));
             if (!$oTabPersonnage) {
                 $oTabPersonnage = $this->selectBy(array("nom" => $oPersonnage->getNom(), "royaume" => $oPersonnage->getRoyaume(), "idFaction" => $oPersonnage->getIdFaction()));
             }
         } catch (\Exception $exc) {
             throw new DatabaseException(2000, 4, $this->_getServiceLocator(), $oPersonnage->getArrayCopy(), $exc, $oPersonnage->getArrayCopy());
         }
         // si n'existe pas on insert
         if (!$oTabPersonnage) {
             try {
                 if (!empty($oGuilde)) {
                     $oPersonnage->setIdGuildes($oGuilde->getIdGuildes());
                     $oPersonnage->setIdFaction($oGuilde->getIdFaction());
                 }
                 $this->insert($oPersonnage);
                 $oPersonnage->setIdPersonnage($this->lastInsertValue);
             } catch (\Exception $exc) {
                 throw new DatabaseException(2000, 2, $this->_getServiceLocator(), $oPersonnage->getArrayCopy(), $exc, $oPersonnage->getArrayCopy());
             }
         } else {
             try {
                 // sinon on update
                 if (!empty($oGuilde)) {
                     $oPersonnage->setIdGuildes($oGuilde->getIdGuildes());
                     $oPersonnage->setIdFaction($oGuilde->getIdFaction());
                 }
                 $oPersonnage->setIdPersonnage($oTabPersonnage->getIdPersonnage());
                 $this->update($oPersonnage);
             } catch (\Exception $exc) {
                 throw new DatabaseException(2000, 1, $this->_getServiceLocator(), $oPersonnage->getArrayCopy(), $exc, $oPersonnage->getArrayCopy());
             }
         }
         return $oPersonnage;
     } catch (\Exception $ex) {
         throw new \Commun\Exception\LogException("Erreur lors de la sauvegarde du personnage", 0, $this->_getServiceLocator(), $ex, $oPersonnage->getArrayCopy());
     }
 }