public function run()
 {
     global $session;
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $login = $request->request->get("Utilisateur");
     $password = $request->request->get("Mot_De_Passe");
     $objAccount = \Account\AccountHelper::getAccountRepository()->findAccountByLoginAndPassword($login, $password);
     if ($objAccount !== null) {
         $session->set("ID", $objAccount->getId());
         $session->set("Utilisateur", $objAccount->getLogin());
         $session->set("Email", $objAccount->getEmail());
         $session->set("Cash", $objAccount->getCash());
         $session->set("Mileage", $objAccount->getMileage());
         $objAdministrationUser = \Site\SiteHelper::getAdminsRepository()->findAdministrationUser($objAccount->getId());
         if ($objAdministrationUser !== null) {
             $session->set("estAdmin", true);
             $Tableau_Retour_Json = array('result' => "1", 'reasons' => "", 'isUnconfimed' => $objAccount->getStatus() == \StatusHelper::NON_CONFIRME, 'isBanned' => $objAccount->getStatus() == \StatusHelper::BANNI, 'withRefresh' => 1, 'data' => '<div style="position: relative;top: 45%;width: 431px; margin: 0 auto 0 auto;"><h2>Chargement de l\'administration...</h2></div>');
         } else {
             $Tableau_Retour_Json = array('result' => "1", 'reasons' => "", 'isUnconfimed' => $objAccount->getStatus() == \StatusHelper::NON_CONFIRME, 'isBanned' => $objAccount->getStatus() == \StatusHelper::BANNI, 'withRefresh' => 0, 'id' => \Encryption::encryptForUrl($objAccount->getId()), 'data' => '');
         }
     } else {
         $Tableau_Retour_Json = array('result' => "2", 'reasons' => "Vous avez indiqué de mauvaises informations.");
     }
     $objLogConnexion = new \Site\Entity\LogsConnexion();
     $objLogConnexion->setCompte($login);
     $objLogConnexion->setIp($this->ipAdresse);
     $objLogConnexion->setDate(new \DateTime(date("Y-m-d H:i:s")));
     if ($session->get("ID") !== null) {
         $objLogConnexion->setResultat(1);
         $objLogConnexion->setIdCompte($session->get("ID"));
     } else {
         $objLogConnexion->setResultat(0);
     }
     $em->persist($objLogConnexion);
     $em->flush();
     echo json_encode($Tableau_Retour_Json);
 }
 public function run()
 {
     global $session;
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idMarchePersonnage = $request->request->get("idMarchePersonnage");
     $objMarchePersonnage = \Site\SiteHelper::getMarchePersonnagesRepository()->find($idMarchePersonnage);
     if ($objMarchePersonnage !== null) {
         $idVendeur = $objMarchePersonnage->getIdProprietaire();
         $idPlayer = $objMarchePersonnage->getIdPersonnage();
         $pidVendeur = $objMarchePersonnage->getPid();
         $objMarcheArticle = \Site\SiteHelper::getMarcheArticlesRepository()->findByIdentifiantArticle($idMarchePersonnage);
         if ($objMarcheArticle !== null) {
             $prixMarcheArticle = $objMarcheArticle->getPrix();
             $deviseMarcheArticle = $objMarcheArticle->getDevise();
             $asserDeMonnaies = false;
             if ($deviseMarcheArticle == 1) {
                 if ($this->objAccount->getCash() >= $prixMarcheArticle) {
                     $asserDeMonnaies = true;
                 }
             } else {
                 if ($deviseMarcheArticle == 2) {
                     if ($this->objAccount->getMileage() >= $prixMarcheArticle) {
                         $asserDeMonnaies = true;
                     }
                 }
             }
             if ($asserDeMonnaies) {
                 $objPlayerIndex = \Player\PlayerHelper::getPlayerIndexRepository()->find($this->objAccount->getId());
                 if ($objPlayerIndex !== null) {
                     $pidDisponible = false;
                     if ($objPlayerIndex->getPid1() == "0") {
                         $pidDisponible = "1";
                     } else {
                         if ($objPlayerIndex->getPid2() == "0") {
                             $pidDisponible = "2";
                         } else {
                             if ($objPlayerIndex->getPid3() == "0") {
                                 $pidDisponible = "3";
                             } else {
                                 if ($objPlayerIndex->getPid4() == "0") {
                                     $pidDisponible = "4";
                                 }
                             }
                         }
                     }
                     if ($pidDisponible != false) {
                         $objAccountProprietaire = \Account\AccountHelper::getAccountRepository()->find($idVendeur);
                         if ($objAccountProprietaire !== null) {
                             if ($deviseMarcheArticle == 1) {
                                 $objAccountProprietaire->setCash($objAccountProprietaire->getCash() + $prixMarcheArticle);
                                 $this->objAccount->setCash($this->objAccount->getCash() - $prixMarcheArticle);
                             } else {
                                 if ($deviseMarcheArticle == 2) {
                                     $objAccountProprietaire->setMileage($objAccountProprietaire->getMileage() + $prixMarcheArticle);
                                     $this->objAccount->setMileage($this->objAccount->getMileage() - $prixMarcheArticle);
                                 }
                             }
                             $em->persist($objAccountProprietaire);
                             $em->persist($this->objAccount);
                             $session->set("Cash", $this->objAccount->getCash());
                             $session->set("Mileage", $this->objAccount->getMileage());
                             $objLogsMarcheAchats = new \Site\Entity\LogsMarcheAchats();
                             $objLogsMarcheAchats->setIdVendeur($idVendeur);
                             $objLogsMarcheAchats->setIdAcheteur($this->objAccount->getId());
                             $objLogsMarcheAchats->setIdPersonnage($idPlayer);
                             $objLogsMarcheAchats->setPrix($prixMarcheArticle);
                             $objLogsMarcheAchats->setDate(\Carbon\Carbon::now());
                             $objLogsMarcheAchats->setDevise($deviseMarcheArticle);
                             $objLogsMarcheAchats->setIp($this->ipAdresse);
                             $em->persist($objLogsMarcheAchats);
                             //Ajout du personnage sur le compte acheteur
                             $funcAcheteur = "setPid" . $pidDisponible;
                             $objPlayerIndex->{$funcAcheteur}($idPlayer);
                             $em->persist($objPlayerIndex);
                             //Rajout du compte acheteur sur le personnage
                             $objPlayer = \Player\PlayerHelper::getPlayerRepository()->find($idPlayer);
                             $objPlayer->setIdAccount($this->objAccount->getId());
                             $objPlayer->setIp("");
                             $em->persist($objPlayer);
                             //Suppression du personnage fictif du compte vendeur
                             $objPlayerIndexVendeur = \Player\PlayerHelper::getPlayerIndexRepository()->find($idVendeur);
                             $funcVendeur = "setPid" . $pidVendeur;
                             $objPlayerIndexVendeur->{$funcVendeur}(0);
                             $em->persist($objPlayerIndexVendeur);
                             //Suppression de l'article de la vente
                             $em->remove($objMarcheArticle);
                             //Suppression du personnage de la vente
                             $em->remove($objMarchePersonnage);
                             $em->flush();
                             //Email vendeur
                             $template = $this->objTwig->loadTemplate("ajaxBuyPlayerVendeur.html5.twig");
                             $result = $template->render(["compte" => $objAccountProprietaire->getLogin(), "player" => $objPlayer->getName(), "prix" => $prixMarcheArticle, "devise" => $deviseMarcheArticle]);
                             $subject = 'VamosMT2 - Vente du joueur ' . $objPlayer->getName();
                             \EmailHelper::sendEmail($objAccountProprietaire->getEmail(), $subject, $result);
                             //Email acheteur
                             $templateAcheteur = $this->objTwig->loadTemplate("ajaxBuyPlayerAcheteur.html5.twig");
                             $resultAcheteur = $templateAcheteur->render(["compte" => $this->objAccount->getLogin(), "player" => $objPlayer->getName(), "prix" => $prixMarcheArticle, "devise" => $deviseMarcheArticle]);
                             $subjectAcheteur = 'VamosMT2 - Achat du joueur ' . $objPlayer->getName();
                             \EmailHelper::sendEmail($this->objAccount->getEmail(), $subjectAcheteur, $resultAcheteur);
                             $Tableau_Retour_Json = array('result' => true, 'cash' => $this->objAccount->getCash(), 'mileage' => $this->objAccount->getMileage(), 'idPlayer' => \Encryption::encryptForUrl($idPlayer));
                         } else {
                             $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le proprietaire n'existe pas.");
                         }
                     } else {
                         $Tableau_Retour_Json = array('result' => false, 'reasons' => "Vous n'avez pas d'emplacement pour mettre ce joueur.");
                     }
                 } else {
                     $Tableau_Retour_Json = array('result' => false, 'reasons' => "Votre compte n'existe pas.");
                 }
             } else {
                 $Tableau_Retour_Json = array('result' => false, 'reasons' => "Vous n'avez pas assez de monnaies.");
             }
         } else {
             $Tableau_Retour_Json = array('result' => false, 'reasons' => "L'article n'existe plus.");
         }
     } else {
         $Tableau_Retour_Json = array('result' => false, 'reasons' => "Ce personnage n'est plus en vente.");
     }
     echo json_encode($Tableau_Retour_Json);
 }
 public function encryptStringForUrl($string = "")
 {
     return \Encryption::encryptForUrl($string);
 }