library LocalLib; import '../IGameManager.dart'; import '../GameDetail.dart'; import '../Player.dart'; import '../User.dart'; import '../Guest.dart'; import 'LocalData.dart'; import 'package:uuid/uuid.dart'; class GameManager extends IGameManager { final LocalData parent; // Constructor GameManager(this.parent); // Methods void addGameToLocalStorage(Game game) { parent.games.add(game); parent.storage._saveToStorage(); } @override GameDetail getGameById(Uuid id) { for (var element in parent.games) { if (element.id == id) { for (var gd in parent.gameDetails) { if (element.id == gd.id) { return gd; } } throw Exception("No GameDetail found corresponding to the given id"); } } throw Exception("No Game found corresponding to the given id"); } @override List getGamesByPlayerId(Uuid id) { List games = []; for (var element in parent.gameDetails) { if (element.players.contains(id)) { games.add(element); } } return games; } @override List getGamesByPlayer(Player user) { throw Exception("Impossible to get games by player with LocalStorage."); } @override List getGamesByPlayers(List users) { throw Exception("Impossible to get games by players with LocalStorage."); } @override List getPlayersByIdGame(Uuid id) { return []; } @override Map getRankByIdGame(Uuid id) { return {}; } }