public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idCompte = $this->objAccount->getId();
     $idPersonnage = $request->request->get("id_personnage");
     $objPlayer = \Player\PlayerHelper::getPlayerRepository()->find($idPersonnage);
     if ($objPlayer !== null) {
         //Suppression des autres demandes
         \Site\SiteHelper::getSuppressionPersonnageRepository()->deleteByPlayerId($idPersonnage);
         $objAccount = \Account\AccountHelper::getAccountRepository()->find($idCompte);
         if ($objAccount !== null) {
             $numeroVerif = \FonctionsUtiles::GenerateString(8, "INT");
             //Envoie de l'email de vérification
             $template = $this->objTwig->loadTemplate("PersonnageDeleteEmailVerify.html5.twig");
             $result = $template->render(["account" => $objAccount->getLogin(), "player" => $objPlayer->getName(), "key" => $numeroVerif]);
             $subject = 'VamosMt2 - Suppression du personnage ' . $objPlayer->getName() . '';
             \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
             //Insertion de la demande
             $objSuppressionPersonnage = new \Site\Entity\SuppressionPersonnage();
             $objSuppressionPersonnage->setIdCompte($idCompte);
             $objSuppressionPersonnage->setIdPersonnage($idPersonnage);
             $objSuppressionPersonnage->setEmail($objAccount->getEmail());
             $objSuppressionPersonnage->setNumeroVerif($numeroVerif);
             $objSuppressionPersonnage->setDate(new \DateTime(date("Y-m-d H:i:s")));
             $objSuppressionPersonnage->setIp($this->ipAdresse);
             $em->persist($objSuppressionPersonnage);
             $em->flush();
             $Tableau_Retour_Json = array('result' => true);
         } else {
             $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le compte n'existe pas.");
         }
         echo json_encode($Tableau_Retour_Json);
     }
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idPlayer = $this->objPlayer->getId();
     $codeVerif = $request->request->get("numeroVerif");
     $objSuppressionPersonnage = \Site\SiteHelper::getSuppressionPersonnageRepository()->findByIdPlayerAndNumeroVerif($this->objPlayer->getId(), $codeVerif);
     if ($objSuppressionPersonnage !== null) {
         if (\Player\PlayerHelper::haveGuild($idPlayer) == false) {
             $objPlayerIndex = \Player\PlayerHelper::getPlayerIndexRepository()->find($this->objAccount->getId());
             if ($objPlayerIndex->getPid1() == $idPlayer) {
                 $func = "setPid1";
             } else {
                 if ($objPlayerIndex->getPid2() == $idPlayer) {
                     $func = "setPid2";
                 } else {
                     if ($objPlayerIndex->getPid3() == $idPlayer) {
                         $func = "setPid3";
                     } else {
                         if ($objPlayerIndex->getPid4() == $idPlayer) {
                             $func = "setPid4";
                         }
                     }
                 }
             }
             $objPlayerIndex->{$func}(0);
             $em->persist($objPlayerIndex);
             \Player\PlayerHelper::getMarriageRepository()->deleteByIdPlayer($idPlayer);
             \Player\PlayerHelper::getItemRepository()->deleteByOwnerId($idPlayer, ["EQUIPMENT", "INVENTORY"]);
             $objPlayerDelete = new \Player\Entity\PlayerDeleted();
             $oldReflection = new \ReflectionObject($this->objPlayer);
             $newReflection = new \ReflectionObject($objPlayerDelete);
             foreach ($oldReflection->getProperties() as $property) {
                 if ($newReflection->hasProperty($property->getName())) {
                     $newProperty = $newReflection->getProperty($property->getName());
                     $newProperty->setAccessible(true);
                     $newProperty->setValue($objPlayerDelete, $property->getValue($this->objPlayer));
                 }
             }
             $em->persist($objPlayerDelete);
             \Player\PlayerHelper::getMessengerListRepository()->deleteByNamePlayer($this->objPlayer->getName());
             $em->remove($this->objPlayer);
             $em->remove($objSuppressionPersonnage);
             $em->flush();
             $Tableau_Retour_Json = array('result' => true);
         } else {
             $em->remove($objSuppressionPersonnage);
             $em->flush();
             $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le joueur est membre ou chef d'une guilde.");
         }
     } else {
         $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le code de vérification n'est pas le bon.");
     }
     echo json_encode($Tableau_Retour_Json);
 }