diff --git a/Sources/AppConsole/Program.cs b/Sources/AppConsole/Program.cs index cf7ad43..827ca48 100644 --- a/Sources/AppConsole/Program.cs +++ b/Sources/AppConsole/Program.cs @@ -1,24 +1,17 @@ -using Microsoft.VisualBasic; -using Model; -using StimPersistance; +using Model; using StimStub; using System.Diagnostics.CodeAnalysis; namespace AppConsole { [ExcludeFromCodeCoverage] - static class Program + public static class Program { - public static Manager Manager { get; set; } = new(new Stub()); - public static string? choixstr; - public static int choixint; + private static Manager Manager { get; set; } = new(new Stub()); + private static string? choixstr; + private static int choixint; - static void Main(string[] args) - { - Program.Menu(); - } - - private static void Menu() + public static void Main(string[] args) { while (choixint != 99) { @@ -39,21 +32,21 @@ namespace AppConsole choixint = 0; if (int.TryParse(choixstr, out choixint)) switch (choixint) - { - case 1: + { + case 1: Console.WriteLine("Nom du jeu : "); string? name = Console.ReadLine(); Console.WriteLine("Description du jeu : "); string? description = Console.ReadLine(); - string? year=""; - int yearint=0; + string? year = ""; + int yearint = 0; while (!int.TryParse(year, out yearint)) { Console.WriteLine("Année du jeu : "); year = Console.ReadLine(); } - + Console.WriteLine("Tag 1 du jeu : "); string? tag1 = Console.ReadLine(); Console.WriteLine("Tag 2 du jeu : "); @@ -64,27 +57,30 @@ namespace AppConsole string? cover = Console.ReadLine(); Console.WriteLine("Lien boutique du jeu : "); string? lien = Console.ReadLine(); - Game game = new(name, description, yearint, new List{ tag1, tag2, tag3 }, cover, lien); + Game game = new(name, description, yearint, new List { tag1, tag2, tag3 }, cover, lien); Manager.AddGametoGamesList(game); Console.WriteLine("Jeu suivant ajouté : " + game.Name); - break; + break; - case 2: + case 2: Console.WriteLine("Nom du jeu : "); string? name2 = Console.ReadLine(); + bool find = false; foreach (Game g in Manager.GameList) if (g.Name == name2) - { - Manager.RemoveGameFromGamesList(g); - Console.WriteLine("Jeu suivant supprimé : " + g.Name); - break; - } - break; + { + Manager.RemoveGameFromGamesList(g); + Console.WriteLine("Jeu suivant supprimé : " + g.Name); + find = true; + break; + } + if (!find) Console.WriteLine("Jeu suivant introuvable : " + name2); + break; - case 3: + case 3: AfficherJeux(); - break; + break; - case 4: + case 4: Console.WriteLine("Nom de l'utilisateur : "); string? username = Console.ReadLine(); Console.WriteLine("Image de l'utilisateur : "); @@ -100,29 +96,67 @@ namespace AppConsole Console.WriteLine("Utilisateur suivant ajouté : " + user.Username); break; - case 5: + case 5: AfficherUsers(); - break; + break; - case 6: - break; + case 6: + Console.WriteLine("Nom du jeu : "); + string? name3 = Console.ReadLine(); + bool find2 = false; + foreach (Game g in Manager.GameList) if (g.Name == name3) foreach (Review rev in g.Reviews) + { + Console.WriteLine(rev); + find2 = true; + break; + } + if (!find2) Console.WriteLine("Jeu suivant introuvable : " + name3); + break; - case 7: - break; + case 7: + Console.WriteLine("Nom du jeu : "); + string? name4 = Console.ReadLine(); + bool find3 = false; + foreach (Game g in Manager.GameList) if (g.Name == name4) + { + Console.WriteLine("Votre nom d'utilisateur : "); + string? username2 = Console.ReadLine(); + int rateint; + string? ratestr = ""; + while (!int.TryParse(ratestr, out rateint)) ratestr = Console.ReadLine(); + Console.WriteLine("Votre commentaire : "); + string? revstr = Console.ReadLine(); + Review rev = new(username2, rateint, revstr); + g.AddReview(rev); + Console.WriteLine("Commentaire ajouté !"); + find2 = true; + break; + } + if (!find3) Console.WriteLine("Jeu suivant introuvable : " + name4); + break; - case 8: - break; + case 8: + Console.WriteLine("Nom du jeu : "); + string? name5 = Console.ReadLine(); + bool find4 = false; + foreach (Game g in Manager.GameList) if (g.Name == name5) + { + Console.WriteLine("Votre nom d'utilisateur : "); + string? username2 = Console.ReadLine(); + //foreach (Review rev in g.Reviews) if (rev.AuthorName) + } + break; - case 9: - break; + case 9: + break; - case 10: - break; + case 10: + break; - default: - break; + default: + break; - } + } } } diff --git a/Sources/Stim.Model/Manager.cs b/Sources/Stim.Model/Manager.cs index 56dffba..87db3e3 100644 --- a/Sources/Stim.Model/Manager.cs +++ b/Sources/Stim.Model/Manager.cs @@ -5,21 +5,17 @@ namespace Model { public class Manager { - public IPersistance Mgrpersistance - { - get { return mgrpersistance; } - set { mgrpersistance = value; } - } - private IPersistance mgrpersistance; - public List GameList { get; set; } + private readonly IPersistance mgrpersistance; + public IReadOnlyList GameList => gameList.AsReadOnly(); + private List gameList; public Game? SelectedGame { get; set; } public User? CurrentUser { get; set; } - public HashSet Users { get; set; } + public HashSet Users { get; private set; } public Manager(IPersistance persistance) { - Mgrpersistance = persistance; - GameList = persistance.LoadGame(); + mgrpersistance = persistance; + gameList = persistance.LoadGame(); Users = persistance.LoadUser(); } @@ -41,24 +37,24 @@ namespace Model public void AddGametoGamesList(Game game) { - GameList.Add(game); - Mgrpersistance.SaveGame(GameList); + gameList.Add(game); + mgrpersistance.SaveGame(gameList); } public void AddUsertoUserList(User user) { Users.Add(user); - Mgrpersistance.SaveUser(Users); + mgrpersistance.SaveUser(Users); } public void RemoveGameFromGamesList(Game game) { - GameList.Remove(game); - Mgrpersistance.SaveGame(GameList); + gameList.Remove(game); + mgrpersistance.SaveGame(gameList); } public void SaveGames() { - Mgrpersistance.SaveGame(GameList); + mgrpersistance.SaveGame(gameList); } public User? SearchUser(string username) { @@ -70,7 +66,7 @@ namespace Model } public void SaveUser() { - Mgrpersistance.SaveUser(Users); + mgrpersistance.SaveUser(Users); } } } diff --git a/Sources/Stim/App.xaml.cs b/Sources/Stim/App.xaml.cs index c1d580b..e4d3290 100644 --- a/Sources/Stim/App.xaml.cs +++ b/Sources/Stim/App.xaml.cs @@ -24,8 +24,8 @@ public partial class App : Application if (!(File.Exists(Path.Combine(FileSystem.Current.AppDataDirectory, "games.xml")))) { Manager Manager2 = new(new Persistance(FileSystem.Current.AppDataDirectory)); - Manager2.GameList = Manager.GameList; - Manager2.Users = Manager2.Users; + foreach (var game in Manager.GameList) Manager2.AddGametoGamesList(game); + foreach (var user in Manager.Users) Manager2.AddUsertoUserList(user); Manager2.SaveGames(); Manager2.SaveUser(); }