/**
  * @param ScavengerHuntGame $game
  * @return bool
  */
 public function save(ScavengerHuntGame $game)
 {
     $data = $game->getData();
     foreach ($data['articles'] as $k => $v) {
         $data['articles'][$k] = $v->getAll();
     }
     $fields = array('wiki_id' => $game->getWikiId(), 'game_name' => $game->getName(), 'game_is_enabled' => $game->isEnabled(), 'game_data' => serialize($data));
     $oldGame = null;
     $db = $this->getDb(DB_MASTER);
     if ($game->getId()) {
         $oldGame = $this->findById($game->getId());
         $db->update(self::GAMES_TABLE_NAME, $fields, array("game_id" => $game->getId()), __METHOD__);
     } else {
         $db->insert(self::GAMES_TABLE_NAME, $fields, __METHOD__);
         $game->setId($db->insertId());
     }
     $db->commit(__METHOD__);
     $this->clearCache($oldGame, $game);
     return true;
 }