public function NumberOfGames()
 {
     if (PlayerGame::get()) {
         return PlayerGame::get()->filter("ParentID", $this->ID)->Count();
     } else {
         return "none";
     }
 }
 /**
  * Attempts to save a game
  *
  * @return Game|null
  */
 protected function addPlayerGame($data, $form)
 {
     $fields = $form->Fields();
     $event = $this->getCurrentEvent();
     $currentID = $event->ID;
     $prefNum = $event->PreferencesPerSession;
     $regID = $data['RegistrationID'];
     $reg = Registration::get()->byID($regID);
     if (!$reg) {
         return false;
     }
     // @todo - handle a proper 'change game' case
     if ($reg->PlayerGames()->Count() > 0) {
         foreach ($reg->PlayerGames() as $playerGame) {
             $reg->PlayerGames()->removeByID($playerGame->ID);
             $playerGame->delete();
         }
     }
     $favouriteID = $data["FavouriteID"];
     for ($session = 1; $session <= $event->NumberOfSessions; $session++) {
         $notPlay = $data["NotPlaying_" . $session];
         $games = Game::get()->filter(array('Session' => $session, 'ParentID' => $currentID, 'Status' => true));
         // Alter prefnumber so it stops when it encounters "not Playing"
         if ($notPlay != 0 && $notPlay < $prefNum) {
             $prefNum = $notPlay;
         }
         // if first choice is to not play, don't create any games
         if ($notPlay === 1) {
             continue;
         }
         foreach ($games as $game) {
             $gamePref = $data["GameID_" . $game->ID];
             // only store games with a preference higher than our threshold
             if ($gamePref > $prefNum || !isset($gamePref)) {
                 continue;
             }
             $playerGame = PlayerGame::create();
             $form->saveInto($playerGame);
             $playerGame->GameID = $game->ID;
             $playerGame->ParentID = $regID;
             $playerGame->Preference = $gamePref;
             if ($favouriteID == $game->ID) {
                 $playerGame->Favourite = true;
             }
             try {
                 $playerGame->write();
             } catch (ValidationException $e) {
                 $form->sessionMessage($e->getResult()->message(), 'bad');
                 return;
             }
         }
     }
     return $playerGame;
 }