You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Projet_IHM/Sources/AppConsole/Program.cs

173 lines
7.9 KiB

using Model;
using StimStub;
using System.Diagnostics.CodeAnalysis;
namespace AppConsole
{
[ExcludeFromCodeCoverage]
public static class Program
{
private static Manager Manager { get; set; } = new(new Stub());
public static void Main(string[] args)
{
string? choixstr;
int choixint = 0;
while (choixint != 99)
{
Console.WriteLine("-----MENU PRINCIPAL-----\n" +
"1-Ajouter un jeu\n" +
"2-Supprimer un jeu\n" +
"3-Afficher les jeux\n" +
"4-Ajouter un utilisateur\n" +
"5-Afficher les utilisateur\n" +
"6-Afficher les commentaires d'un jeu\n" +
"7-Ajouter un commentaire\n" +
"8-Supprimer un commentaire\n" +
"9-Ajouter jeu suivis\n" +
"10-Supprimer jeu suivis\n" +
"99-Quitter");
choixstr = Console.ReadLine();
if (int.TryParse(choixstr, out choixint)) switch (choixint)
{
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;
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 : ");
string? tag2 = Console.ReadLine();
Console.WriteLine("Tag 3 du jeu : ");
string? tag3 = Console.ReadLine();
Console.WriteLine("Cover du jeu : ");
string? cover = Console.ReadLine();
Console.WriteLine("Lien boutique du jeu : ");
string? lien = Console.ReadLine();
Game game = new(name, description, yearint, new List<string> { tag1, tag2, tag3 }, cover, lien);
Manager.AddGametoGamesList(game);
Console.WriteLine("Jeu suivant ajouté : " + game.Name);
break;
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);
find = true;
break;
}
if (!find) Console.WriteLine("Jeu suivant introuvable : " + name2);
break;
case 3:
AfficherJeux();
break;
case 4:
Console.WriteLine("Nom de l'utilisateur : ");
string? username = Console.ReadLine();
Console.WriteLine("Image de l'utilisateur : ");
string? image = Console.ReadLine();
Console.WriteLine("Biographie de l'utilisateur : ");
string? biographie = Console.ReadLine();
Console.WriteLine("Email de l'utilisateur : ");
string? email = Console.ReadLine();
Console.WriteLine("Password de l'utilisateur : ");
string? password = Console.ReadLine();
User user = new(image, username, biographie, email, password);
Manager.AddUsertoUserList(user);
Console.WriteLine("Utilisateur suivant ajouté : " + user.Username);
break;
case 5:
AfficherUsers();
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:
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é !");
find3 = true;
break;
}
if (!find3) Console.WriteLine("Jeu suivant introuvable : " + name4);
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 10:
break;
default:
break;
}
}
}
private static void AfficherJeux()
{
foreach (Game game in Manager.GameList) Console.WriteLine(game);
}
private static void AfficherUsers()
{
foreach (User user in Manager.Users) Console.WriteLine(user);
}
}
}