/**
  * @param string $name
  * @return Player
  * @throws \Exception
  * @throws \InvalidArgumentException
  */
 public function addPlayer($name)
 {
     $player = $this->playerRepository->findOneBy(['name' => $name]);
     if (!$player) {
         $player = new Player();
         $player->setName($name);
         try {
             $this->playerRepository->getManager()->persist($player);
             $this->playerRepository->getManager()->flush();
             return $player;
         } catch (\Exception $e) {
             throw $e;
         }
     }
     throw new \InvalidArgumentException();
 }
 /**
  * @param object $obj
  * @param bool|true $flush
  */
 private function save($obj, $flush = true)
 {
     $this->playerRepository->getManager()->persist($obj);
     if ($flush) {
         $this->playerRepository->getManager()->flush();
     }
 }