From e386214b20ffacd499da60779c9164c598f5e3dd Mon Sep 17 00:00:00 2001 From: Louison PARANT Date: Thu, 9 Mar 2023 11:51:36 +0100 Subject: [PATCH] Push LocalStorage (GameManager) --- .idea/libraries/Dart_Packages.xml | 556 ++++++++++++++++++ .idea/libraries/Dart_SDK.xml | 27 + .../lib/model/LocalManager/GameManager.dart | 26 +- .../lib/model/LocalManager/LocalData.dart | 21 +- 4 files changed, 618 insertions(+), 12 deletions(-) create mode 100644 .idea/libraries/Dart_Packages.xml create mode 100644 .idea/libraries/Dart_SDK.xml diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml new file mode 100644 index 0000000..22b8bd3 --- /dev/null +++ b/.idea/libraries/Dart_Packages.xml @@ -0,0 +1,556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml new file mode 100644 index 0000000..bc2930b --- /dev/null +++ b/.idea/libraries/Dart_SDK.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart b/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart index 5517ed5..6e69137 100644 --- a/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart +++ b/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart @@ -9,7 +9,6 @@ import 'LocalData.dart'; import 'package:uuid/uuid.dart'; class GameManager extends IGameManager { - List games = []; final LocalData parent; // Constructor @@ -18,23 +17,38 @@ class GameManager extends IGameManager { // Methods @override GameDetail getGameById(Uuid id) { - return GameDetail(Uuid(), DateTime.now(), Uuid(), 290, true, null, - Guest(Uuid(), "", ""), [], []); + 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) { - return []; + List games = []; + for (var element in parent.gameDetails) { + if (element.players.contains(id)) { + games.add(element); + } + } + return games; } @override List getGamesByPlayer(Player user) { - return []; + throw Exception("Impossible to get games by player with LocalStorage."); } @override List getGamesByPlayers(List users) { - return []; + throw Exception("Impossible to get games by players with LocalStorage."); } @override diff --git a/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart b/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart index f20430e..a8555c1 100644 --- a/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart +++ b/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart @@ -3,6 +3,11 @@ library LocalLib; import '../IManager.dart'; import '../IUserManager.dart'; import '../IGameManager.dart'; +import '../Round.dart'; +import '../Stat.dart'; +import '../GameDetail.dart'; +import '../Game.dart'; +import '../Achievement.dart'; import '../User.dart'; import 'UserManager.dart'; import 'GameManager.dart'; @@ -15,12 +20,8 @@ class LocalData extends IManager { final LocalStorage storage = LocalStorage('local_key'); List users = []; - - LocalData() { - _userMgr = UserManager(this); - _gameMgr = GameManager(this); - users = storage.getItem('users'); - } + List gameDetails = []; + List games = []; _saveToStorage() { storage.setItem('users', toJSONEncodable()); @@ -35,4 +36,12 @@ class LocalData extends IManager { return user.toJSONEncodable(); }).toList(); } + + LocalData() { + _userMgr = UserManager(this); + _gameMgr = GameManager(this); + users = storage.getItem('users'); + games = storage.getItem('games'); + gameDetails = storage.getItem('gameDetails'); + } }