From 75226d8bb4b097969e5c2266ab52a35e50149cf8 Mon Sep 17 00:00:00 2001 From: Matheo THIERRY Date: Fri, 26 May 2023 11:44:29 +0200 Subject: [PATCH] ADD starting menu, reworking connection and inscription --- notus/Biblioteque_de_Class/Database.cs | 4 +- notus/Biblioteque_de_Class/User.cs | 8 +- notus/Notus_Console/Program.cs | 173 +++++++++++++++++++------ notus/Notus_Persistence/Stub.cs | 13 +- 4 files changed, 146 insertions(+), 52 deletions(-) diff --git a/notus/Biblioteque_de_Class/Database.cs b/notus/Biblioteque_de_Class/Database.cs index 61fc24d..d7b0e36 100644 --- a/notus/Biblioteque_de_Class/Database.cs +++ b/notus/Biblioteque_de_Class/Database.cs @@ -56,7 +56,7 @@ namespace Biblioteque_de_Class /// /// récupérer un utilisateur /// - public User GetUser(string name) + public User GetUser(string? name) { foreach (User user in UserList) { @@ -71,7 +71,7 @@ namespace Biblioteque_de_Class /// /// comparer le mot de passe entré avec celui de l'utilisateur /// - public static bool ComparePassword(User user, string password) => user.GetPassword() == password; + public static bool ComparePassword(User user, string? password) => user.GetPassword() == password; /// /// rechercher un mail dans la liste d'utilisateur diff --git a/notus/Biblioteque_de_Class/User.cs b/notus/Biblioteque_de_Class/User.cs index f9e1b2c..dd53f69 100644 --- a/notus/Biblioteque_de_Class/User.cs +++ b/notus/Biblioteque_de_Class/User.cs @@ -9,11 +9,11 @@ namespace Biblioteque_de_Class public class User { [DataMember] - private string Username { get; set; } + private string? Username { get; set; } [DataMember] - private string Email { get; set; } + private string? Email { get; set; } [DataMember] - private string Password { get; set; } + private string? Password { get; set; } [DataMember] private List NoteList; [DataMember] @@ -25,7 +25,7 @@ namespace Biblioteque_de_Class [DataMember] private Dictionary> NoteTagged; - public User(string username, string email, string password) + public User(string? username, string? email, string? password) { Username = username; Email = email; diff --git a/notus/Notus_Console/Program.cs b/notus/Notus_Console/Program.cs index 1f099dc..31a7b0a 100644 --- a/notus/Notus_Console/Program.cs +++ b/notus/Notus_Console/Program.cs @@ -5,50 +5,143 @@ using System.Linq.Expressions; using System.Runtime.InteropServices; using Notus_Persistance; -string Upseudo = "u"; -string Umail = "u"; -string Upassword = "u"; -int nomImage = 1; -string linkimage = "u"; -string position = "u"; -string nomNote = "u"; -string logoPath = "u"; -string NomTag = "u"; -string nom = "u"; -string choixNom; -string choixCouleur; -string choixModif; -int image_; -string choix; -string color = "u"; -string color2; -string color3; - - -User user = new User(Upseudo, Umail, Upassword); -NoteImage image = new NoteImage(nomImage, linkimage, position); -Database db = new Database(); -User u = new User(Upseudo, Umail, Upassword); -Note n = new Note(nomNote, logoPath, u); -Tags t = new Tags(NomTag, color); - -List NewColorList = new List { }; -List listCouleurs = new List { }; -List _searchedNotes; -List NoteListe; -List _searchedTags; -List UserListe; // = IManager.LoadUserData(); /// Essai de load via Imanager - - - -foreach (User us in UserListe) /// Test du stub +// load database +PersistenceManager manager = new(new Stub()); +Database db = manager.LoadDatabaseData(); + +// initialization zone============================================================================== + +int boucle = 0; +bool continuerboucle = false; +bool exceptionboucle = false; +bool connection=false, inscription=false; + +// déclaration d'un user qui sera utiliser pour servir de personne connecté dans l'app +User u = new("", "", ""); +User uvide = new("", "", ""); + +// déclaration d'une note qui sera utiliser pour servir de note selectionnée +Note n = new("","",uvide); + +bool continuer() { - Console.WriteLine("Coucou"); + continuerboucle = false; + Console.WriteLine("Continuer la connection ? (O/n)\n"); + switch (Console.ReadLine()) + { + case "O": + return false; + case "": + return false; + case "o": + return false; + case "n": + return true; + default: + Console.WriteLine("Entrez un choix valide.\n"); + continuerboucle = true; + return true; + } } -return; -int boucle = 0; + while (boucle == 0) { + Console.WriteLine("|--------------------------------------|"); + Console.WriteLine("| |"); + Console.WriteLine("| starting menu |"); + Console.WriteLine("| |"); + Console.WriteLine("|--------------------------------------|--------|"); + Console.WriteLine("| |"); + Console.WriteLine("| 1 / - connection - |"); + Console.WriteLine("| 2 / - inscription - |"); + Console.WriteLine("| |"); + Console.WriteLine("|-----------------------------------------------|"); + switch (Console.ReadLine()) + { + case "1": ///Connexion + connection = true; break; + + case "2":///Creer un compte + inscription = true; break; + default: + Console.WriteLine("Entrez un choix valide.\n"); + break; + } + + //connection + while (connection == true) + { + while (exceptionboucle != true) + { + exceptionboucle = true; + Console.WriteLine("Entrez votre nom : \n"); + string? nom = Console.ReadLine(); + Console.WriteLine("Entrez votre password : \n"); + string? password = Console.ReadLine(); + try + { + u = db.GetUser(nom); + } + catch (AlreadyUsedException ex) + { + Console.WriteLine(ex.Message); + exceptionboucle = false; + } + if (exceptionboucle == true) + { + if (Database.ComparePassword(u, password)) + { + u.SetIsConnected(true); + } + else + { + Console.WriteLine("Wrong PassWord !"); + exceptionboucle = false; + continuerboucle = true; + u = uvide; + } + } + while (continuerboucle == true) { exceptionboucle = continuer(); } + } + } + + //inscription + while (inscription == true) + { + Console.WriteLine("Entrez un nom : \n"); + string? nom = Console.ReadLine(); + Console.WriteLine("Entrez un password : \n"); + string? password = Console.ReadLine(); + try + { + u = db.GetUser(nom); + } + catch (AlreadyUsedException ex) + { + u = new User(nom, "", password); + db.AddUser(u); + db.GetUser(nom).SetIsConnected(true); + break; + } + Console.WriteLine(" Nom d'utilisateur déjà utilisé. \n") + while (continuerboucle == true) { exceptionboucle = continuer(); } + } + + //une fois connecté ou inscription fait + while (u.GetIsConnected() == true) + { + Console.WriteLine("|--------------------------------------|"); + Console.WriteLine("| |"); + Console.WriteLine("| menu |"); + Console.WriteLine("| |"); + Console.WriteLine("|--------------------------------------|--------|"); + Console.WriteLine("| |"); + Console.WriteLine("| 1 / - connection - |"); + Console.WriteLine("| 2 / - inscription - |"); + Console.WriteLine("| |"); + Console.WriteLine("|-----------------------------------------------|"); + } + Console.WriteLine("|--------------------------------------|"); Console.WriteLine("| |"); Console.WriteLine("| Menu pour lister les fonctionnalités |"); diff --git a/notus/Notus_Persistence/Stub.cs b/notus/Notus_Persistence/Stub.cs index 02562d6..46344fb 100644 --- a/notus/Notus_Persistence/Stub.cs +++ b/notus/Notus_Persistence/Stub.cs @@ -8,12 +8,18 @@ using System.Threading.Tasks; namespace Notus_Persistance { - internal class Stub : IManager + public class Stub : IManager { void IManager.SaveDatabaseData(Database database) { throw new NotImplementedException(); } + void IManager.SaveUserData(User user) + { + throw new NotImplementedException(); + } + + Database IManager.LoadDatabaseData() { @@ -25,11 +31,6 @@ namespace Notus_Persistance return database; } - void IManager.SaveUserData(User user) - { - throw new NotImplementedException(); - } - List IManager.LoadUserData() { List users = new List();