/**
  * Load data fixtures with the passed EntityManager
  *
  * @param \Doctrine\Common\Persistence\ObjectManager $manager
  */
 function load(ObjectManager $manager)
 {
     $genres = ['Action', 'Adventure & RPG', 'Learning & Tutorials', 'Music', 'Puzzle', 'Shooter', 'Sports & Racing', 'Strategy & Defense', 'Other'];
     $repo = $manager->getRepository('GotChosenSiteBundle:EGGameGenre');
     foreach ($genres as $genre) {
         if (!$repo->findOneBy(['name' => $genre])) {
             $o = new EGGameGenre();
             $o->setName($genre);
             $manager->persist($o);
         }
     }
     $manager->flush();
 }
 public function findPopularQualifierGames(Scholarship $scholarship, $gameName = null, $gameStudio = null, EGGameGenre $genre = null, $offset = 0, $limit = 20)
 {
     $em = $this->getEntityManager();
     $where = "";
     if ($gameName) {
         $where .= " AND g.gameName LIKE :gameName ";
     }
     if ($gameStudio) {
         $where .= " AND g.studioName LIKE :gameStudio ";
     }
     if ($genre) {
         $where .= " AND g.genre = :genre ";
     }
     $q = $em->createQuery('SELECT g FROM GotChosenSiteBundle:EGGame g ' . 'LEFT JOIN g.scholarships gs ' . 'LEFT JOIN g.statistics st ' . 'WHERE g.status = :gameStatus AND st.statsMonth = :statsMonth ' . $where . 'AND (gs.scholarship IS NULL OR gs.scholarship != :sship)' . 'ORDER BY st.monthPlays DESC');
     $q->setParameter('gameStatus', EGGame::STATUS_ACTIVE);
     $q->setParameter('statsMonth', date('Y-m'));
     $q->setParameter('sship', $scholarship->getId());
     $q->setFirstResult($offset);
     $q->setMaxResults($limit);
     if ($gameName) {
         $q->setParameter('gameName', "%{$gameName}%");
     }
     if ($gameStudio) {
         $q->setParameter('gameStudio', "%{$gameStudio}%");
     }
     if ($genre) {
         $q->setParameter('genre', $genre->getId());
     }
     return $q->getResult();
 }