diff --git a/notus/Biblioteque_de_Class/Note.cs b/notus/Biblioteque_de_Class/Note.cs index 1873da9..1f452c8 100644 --- a/notus/Biblioteque_de_Class/Note.cs +++ b/notus/Biblioteque_de_Class/Note.cs @@ -54,7 +54,7 @@ namespace Biblioteque_de_Class ModificationDate = DateOnly.FromDateTime(DateTime.Now); ImageList = new List(); Collaborators = new List(); - Editors = new List(); + Editors = new List() { owner }; Owner = owner; } @@ -74,9 +74,9 @@ namespace Biblioteque_de_Class /// /// /// - public void AddImage(string imageLink, string position) + public void AddImage(string imageLink, List position) { - int newname = ImageList.Count + 1; + string newname = (ImageList.Count + 1).ToString(); ImageList.Add(new NoteImage(newname, imageLink, position)); } @@ -85,7 +85,7 @@ namespace Biblioteque_de_Class /// /// /// - public void RemoveImage(int name) + public void RemoveImage(string name) { foreach (NoteImage image in ImageList) { @@ -140,6 +140,7 @@ namespace Biblioteque_de_Class /// public void AddEditor(User owner, User user) { + if (Editors.Contains(user)) { throw new AlreadyExistException("user already in editors."); } if (VerifyOwner(owner)) { Editors.Add(user); } } @@ -148,6 +149,7 @@ namespace Biblioteque_de_Class /// public void RemoveEditor(User owner, User user) { + if (!Editors.Contains(user)) { throw new NotFoundException("user not found in editors."); } if (VerifyOwner(owner)) { Editors.Remove(user); } } diff --git a/notus/Biblioteque_de_Class/NoteImage.cs b/notus/Biblioteque_de_Class/NoteImage.cs index 267c246..2471a16 100644 --- a/notus/Biblioteque_de_Class/NoteImage.cs +++ b/notus/Biblioteque_de_Class/NoteImage.cs @@ -8,11 +8,11 @@ namespace Biblioteque_de_Class { public class NoteImage { - public int Name { get; set; } + public string Name { get; set; } public string ImageLink { get; set; } - public string Position { get; set; } + public List Position { get; set; } - public NoteImage(int name, string imageLink, string position) + public NoteImage(string name, string imageLink, List position) { Name = name; ImageLink = imageLink; diff --git a/notus/Biblioteque_de_Class/User.cs b/notus/Biblioteque_de_Class/User.cs index 4b1b8e5..1bdfa14 100644 --- a/notus/Biblioteque_de_Class/User.cs +++ b/notus/Biblioteque_de_Class/User.cs @@ -49,11 +49,11 @@ namespace Biblioteque_de_Class /// /// rechercher une note dans la liste de note de l'utilisateur et la liste de note favoris de l'utilisateur /// - public List SearchNoteByName(List ToResearchIntoList, string name) + public List SearchNoteByName(List toResearchIntoList, string name) { List searchedNotes = new List(); string search = name.ToLower(); - foreach (Note note in ToResearchIntoList) + foreach (Note note in toResearchIntoList) { if (note.Name.ToLower().Contains(search)) { @@ -63,6 +63,20 @@ namespace Biblioteque_de_Class return searchedNotes; } + public List SearchNoteByTag(List toResearchIntoList, string name) + { + List searchedNotes = new(); + Tags tagtoresearchby = GetTagByName(name); + foreach(Note note in toResearchIntoList) + { + if (NoteTagged[note].Contains(tagtoresearchby)) + { + searchedNotes.Add(note); + } + } + return searchedNotes; + } + /// /// rechercher un tag dans la liste de tag de l'utilisateur /// @@ -264,7 +278,7 @@ namespace Biblioteque_de_Class /// /// ajouter un tag a une note /// - public void AddTagToNoteList(Note note, Tags tagToAdd) + public void AddTagFromNoteList(Note note, Tags tagToAdd) { if (!TagList.Contains(tagToAdd)) { diff --git a/notus/Notus_Console/Program.cs b/notus/Notus_Console/Program.cs index 3020319..cac33da 100644 --- a/notus/Notus_Console/Program.cs +++ b/notus/Notus_Console/Program.cs @@ -291,11 +291,16 @@ while (arreter) Console.WriteLine("| 2/ - modifier une note - |"); Console.WriteLine("| 3/ - supprimer une note - |"); Console.WriteLine("| 4/ - écrire dans une note - |"); - // ajouter et supprimer une image et donner des privileges et supprimer des privileges et supprimer des collaborateur et supprimer des tags - Console.WriteLine("| 5/ - partager note - |"); - Console.WriteLine("| 6/ - ajouter tag - |"); - Console.WriteLine("| 7/ - rechercher une note - |"); - Console.WriteLine("| 8/ - retour - |"); + Console.WriteLine("| 5/ - ajouter une image - |"); + Console.WriteLine("| 6/ - supprimer une image - |"); + Console.WriteLine("| 7/ - partager note - |"); + Console.WriteLine("| 8/ - supprimer collaborateur - |"); + Console.WriteLine("| 9/ - ajouter un éditeur - |"); + Console.WriteLine("| 10/ - supprimer un éditeur - |"); + Console.WriteLine("| 11/ - ajouter tag - |"); + Console.WriteLine("| 12/ - enelver tag - |"); + Console.WriteLine("| 13/ - rechercher une note - |"); + Console.WriteLine("| 14/ - retour - |"); Console.WriteLine("| |"); Console.WriteLine("|-----------------------------------------------|\n"); Console.WriteLine("note actuelle : " + n.Name); @@ -377,6 +382,35 @@ while (arreter) break; case "5": if (!Choix_Note()) { break; } + if (!n.VerifyPrivilege(u)) { break; } + Console.WriteLine("Entrer le chemin de l'image :"); + string? wantedimage = Console.ReadLine(); + if (wantedimage == null) { continue; } + n.AddImage(wantedimage, new() { 0, 0 }); + break; + case "6": + if (!Choix_Note()) { break; } + if(!n.VerifyPrivilege(u)) { break; } + foreach (NoteImage image in n.ImageList) + { + Console.WriteLine(image.Name + " -> " + image.ImageLink + "\n"); + } + Console.WriteLine("entrez le numéro de l'image à supprimer :"); + string? wantedimagetodelete = Console.ReadLine(); + if(wantedimagetodelete == null) { continue; } + try + { + n.RemoveImage(wantedimagetodelete); + } + catch(NotFoundException ex) + { + Console.WriteLine(ex.Message); + break; + } + break; + case "7": + if (!Choix_Note()) { break; } + if (!n.VerifyOwner(u)) { continue; } User wantedUser; Console.WriteLine("\nEntrez le nom de l'utilisateur à qui partager la note :"); string? wantedNameUser = Console.ReadLine(); @@ -400,9 +434,91 @@ while (arreter) break; } break; - case "6": - Tags tagtoadd; - Choix_Note(); + case "8": //supp collab + User wantedUser2; + if (!Choix_Note()) { break; } + if (!n.VerifyOwner(u)) { continue; } + Console.WriteLine("\n Entrez le nom de l'utilisateur qui doit etre supprimer : "); + string? wantedNameUser2 = Console.ReadLine(); + if (wantedNameUser2 == null) { continue; } + try + { + wantedUser2 = db.SearchUser(wantedNameUser2); + } + catch(NotFoundException ex) + { + Console.WriteLine(ex.Message); + break; + } + try + { + n.RemoveCollaborator(u, wantedUser2); + } + catch(NotAllowedException ex) + { + Console.WriteLine(ex.Message); + break; + } + break; + case "9":// add edit + if (!Choix_Note()) { break; } + if (!n.VerifyOwner(u)) { continue; } + foreach (User user in n.Collaborators) + { + if( n.Editors.Contains(user)) { continue; } + Console.WriteLine( " - " + user.Username ); + } + User UserToAddEdit; + Console.WriteLine("Entrer le pseudo de l'utilisateur voulu"); + string? wantedNameUser3 = Console.ReadLine(); + if (wantedNameUser3 == null) { continue; } + try + { + UserToAddEdit = db.SearchUser(wantedNameUser3); + }catch(NotFoundException ex) + { + Console.WriteLine(ex.Message); + break; + } + try + { + n.AddEditor(u, UserToAddEdit); + } + catch(AlreadyExistException ex) + { + Console.WriteLine(ex.Message); + break; + } + break; + case "10":// supp edit + if (!Choix_Note()) { break; } + if (!n.VerifyOwner(u)) { continue; } + User UserToDeleteEdit; + Console.WriteLine("Entrer le pseudo de l'utilisateur voulu"); + string? wantedNameUser4 = Console.ReadLine(); + if (wantedNameUser4 == null) { continue; } + try + { + UserToDeleteEdit = db.SearchUser(wantedNameUser4); + } + catch (NotFoundException ex) + { + Console.WriteLine(ex.Message); + break; + } + try + { + n.RemoveEditor(u, UserToDeleteEdit); + } + catch (NotFoundException ex) + { + Console.WriteLine(ex.Message); + break; + } + break; + case "11": + Tags tagtoadd; + if (!Choix_Note()) { break; } Console.WriteLine("\nEntrez le nom du tag à ajouter :"); string? wantedNameTag2 = Console.ReadLine(); if (wantedNameTag2 == null) { continue; } @@ -417,7 +533,7 @@ while (arreter) } try { - u.AddTagToNoteList(n, tagtoadd); + u.AddTagFromNoteList(n, tagtoadd); } catch (NotAllowedException ex) { @@ -425,7 +541,31 @@ while (arreter) break; } break; - case "7": + case "12":// enelver tag + if (!Choix_Note()) { break; } + Console.WriteLine("\n Entrez le nom du tag à supprimer"); + string? wantedNameTag3 = Console.ReadLine(); + if (wantedNameTag3 == null) { continue; } + try + { + tagtoadd = u.GetTagByName(wantedNameTag3); + } + catch (NotFoundException ex) + { + Console.WriteLine(ex.Message); + break; + } + try + { + u.RemoveTagFromNoteList(n, tagtoadd); + } + catch (NotAllowedException ex) + { + Console.WriteLine(ex.Message); + break; + } + break; + case "13": /* * ajouter une date ou une fourchette de date? * ajouter des tags @@ -438,33 +578,104 @@ while (arreter) Console.WriteLine("\nEntrez le nom de la note à rechercher :"); string? wantedNameNote3 = Console.ReadLine(); if (wantedNameNote3 == null) { continue; } - - Console.WriteLine("Voulez vous chercher dans les favoris ? (o/N)"); + Console.WriteLine("Voulez vous faire une recherche avancé ? (o/N)"); if (Choix_DefaultNon()) { - wantedNotes = u.FavList; + Console.WriteLine("Voulez vous chercher dans les favoris ? (o/N)"); + if (Choix_DefaultNon()) + { + wantedNotes = u.FavList; + } + else + { + wantedNotes = u.NoteList; + } + Console.WriteLine("Voulez vous chercher par date seul '1' ou par fourchette de date '2' ? autre pour continuer"); + switch (Console.ReadLine()) + { + case "1": + Console.WriteLine("Entrez la date de la note à rechercher :"); + string? line = Console.ReadLine(); + if (line == null) { continue; } + DateOnly date1; + while (!DateOnly.TryParseExact(line, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out date1)) + { + Console.WriteLine("Invalid date, please retry"); + line = Console.ReadLine(); + } + wantedNotes = u.SearchNoteByDate(wantedNotes, wantedNameNote3, date1, date1); + if (wantedNotes == null) { Console.WriteLine("Aucun resultat !"); break; } + foreach (Note notetodisplay in wantedNotes) + { + Console.WriteLine(" - " + notetodisplay.Name); + } + break; + + case "2": + Console.WriteLine("Entrez la date de début de la fourchette de date de la note à rechercher :"); + string? line2 = Console.ReadLine(); + if (line2 == null) { continue; } + DateOnly date2; + while (!DateOnly.TryParseExact(line2, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out date2)) + { + Console.WriteLine("Invalid date, please retry"); + line2 = Console.ReadLine(); + } + Console.WriteLine("Entrez la date de début de la fourchette de date de la note à rechercher :"); + string? line3 = Console.ReadLine(); + if (line3 == null) { continue; } + DateOnly date3; + while (!DateOnly.TryParseExact(line3, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out date3)) + { + Console.WriteLine("Invalid date, please retry"); + line3 = Console.ReadLine(); + } + wantedNotes = u.SearchNoteByDate(wantedNotes, wantedNameNote3, date2, date3); + if (wantedNotes == null) { Console.WriteLine("Aucun resultat !"); break; } + foreach (Note notetodisplay in wantedNotes) + { + Console.WriteLine(" - " + notetodisplay.Name); + } + break; + default: + break; + } + Console.WriteLine("\n Voulez vous rechercher par tag (o/N) ? autre pour continuer"); + if (Choix_DefaultNon()) + { + Console.WriteLine("Plusieurs tags ? (o/N)"); + if (Choix_DefaultNon()) + { + Console.WriteLine("choisissez les tags à rechercher séparé par un espace :"); + string? tagstoresearch = Console.ReadLine(); + if (tagstoresearch == null) { continue; } + List listoftagtoresearch = tagstoresearch.Split(' ').ToList(); + } + else + { + Console.WriteLine("choisissez le tags à rechercher"); + string? tagstoresearch = Console.ReadLine(); + if (tagstoresearch == null) { continue; } + wantedNotes = u.SearchNoteByTag(wantedNotes, tagstoresearch); + } + if (wantedNotes == null) { Console.WriteLine("Aucun resultat !"); break; } + foreach (Note notetodisplay in wantedNotes) + { + Console.WriteLine(" - " + notetodisplay.Name); + } + } } else { - wantedNotes = u.NoteList; - } - Console.WriteLine("Voulez vous chercher par date seul '1' ou par fourchette de date '2' ?"); - switch (Console.ReadLine()) - { - case "1": - Console.WriteLine("Entrez la date de la note à rechercher :"); - string? wantedDateNote = Console.ReadLine(); - if (wantedDateNote == null) { continue; } - break; - case "2": - Console.WriteLine("Entrez la date de début de la fourchette de date de la note à rechercher :"); - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; + wantedNotes = u.SearchNoteByName(wantedNotes, wantedNameNote3); + if (wantedNotes == null) { Console.WriteLine("Aucun resultat !"); break; } + foreach (Note notetodisplay in wantedNotes) + { + Console.WriteLine(" - " + notetodisplay.Name); + } } break; - case "8": + case "14": note = false; break; default: @@ -785,7 +996,7 @@ while (arreter) { ThemetoSelect = db.GetTheme(wantedTheme); } - catch (NotFoundException ex) + catch (NotFoundException) { try { @@ -922,723 +1133,3 @@ while (arreter) } } manager.SaveDatabaseData(db); - - -/* -bool continuer() -{ - continuerboucle = false; - while(!continuerboucle) - { - Console.WriteLine("\nContinuer ? (O/n)"); - switch (Console.ReadLine()) - { - case "O": - return true; - case null: - return true; - case "o": - return true; - case "n": - return false; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - continuerboucle = true; - break; - } - } - return false; -} - -bool choix_note() -{ - Console.WriteLine("\nChoisissez le nom de la note"); - string? wantedModifyNote = Console.ReadLine(); - wantedModifyNote??= ""; - try - { - n = u.GetNoteByName(wantedModifyNote); - }catch (Exception ex) { Console.WriteLine(ex.Message); return false; } - return true; -} - -void displayNote() -{ - foreach (Note note in u.NoteList) - { - Console.WriteLine(note.Name + "\n"); - } -} - -void displayNoteList(List noteList) -{ - foreach (Note note in noteList) - { - Console.WriteLine(note.Name + "\n"); - } -} - -void displayTag() -{ - foreach (Tags tag in u.TagList) - { - Console.WriteLine(tag.Name + "\n"); - } -} - -void displayTheme() -{ - foreach (Theme theme in u.AddedTheme) - { - Console.WriteLine(theme.Name + "\n"); - } -} - -List? choix_couleur() -{ - List colorList = new(); - Console.WriteLine("Fond : "); - string? wantedNewThemeFond = Console.ReadLine(); - if(wantedNewThemeFond == null){ return null; } - else if(wantedNewThemeFond[0].ToString() != "#"){ - Console.WriteLine("\nLa couleur doit être au format hexadécimal.\n"); - return null; - }else if(wantedNewThemeFond.Length != 7) - { - string toadd=""; - for(int i = 7- wantedNewThemeFond.Length; i!=0; i--){toadd += "0";} - wantedNewThemeFond += toadd; - return null; - } - Console.WriteLine("Texte : "); - string? wantedNewThemeTexte = Console.ReadLine(); - if(wantedNewThemeTexte == null){ return null; } - else if(wantedNewThemeTexte[0].ToString() != "#"){ - Console.WriteLine("\nLa couleur doit être au format hexadécimal.\n"); - return null; - }else if(wantedNewThemeTexte.Length != 7) - { - string toadd=""; - for(int i = 7- wantedNewThemeTexte.Length; i!=0; i--){toadd += "0";} - wantedNewThemeTexte += toadd; - return null; - } - Console.WriteLine("Bouton : "); - string? wantedNewThemeBouton = Console.ReadLine(); - if(wantedNewThemeBouton == null){ return null; } - else if(wantedNewThemeBouton[0].ToString() != "#"){ - Console.WriteLine("\nLa couleur doit être au format hexadécimal.\n"); - return null; - }else if(wantedNewThemeBouton.Length != 7) - { - string toadd=""; - for(int i = 7- wantedNewThemeBouton.Length; i!=0; i--){toadd += "0";} - wantedNewThemeBouton += toadd; - return null; - } - colorList.Add(wantedNewThemeFond); - colorList.Add(wantedNewThemeTexte); - colorList.Add(wantedNewThemeBouton); - return colorList; -} - -while (menu) -{ - Console.WriteLine("\n|--------------------------------------|"); - Console.WriteLine("| |"); - Console.WriteLine("| starting menu |"); - Console.WriteLine("| |"); - Console.WriteLine("|--------------------------------------|--------|"); - Console.WriteLine("| |"); - Console.WriteLine("| 1 / - connection - |"); - Console.WriteLine("| 2 / - inscription - |"); - Console.WriteLine("| |"); - Console.WriteLine("|-----------------------------------------------|\n"); - Console.WriteLine("rentrez votre choix."); - switch (Console.ReadLine()) - { - case "1": ///Connexion - connection = true; break; - - case "2":///Creer un compte - inscription = true; break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - - //connection - while (connection) - { - connection = false; - Console.WriteLine("\nEntrez un nom : "); - string? nom = Console.ReadLine(); - if (nom == null) { continue; } - Console.WriteLine("\nEntrez un password :"); - string? password = Console.ReadLine(); - if (password == null) { continue; } - try - { - u = db.GetUser(nom); - } - catch (AlreadyUsedException ex) - { - Console.WriteLine(ex.Message); - connection = true; - } - if (!connection) - { - if (Database.ComparePassword(u, HashCodeModel.GetSHA256Hash(u.Password).ToString())) - { - u.IsConnected = true; - Console.WriteLine("\nConnection réussie !\n"); - menu = false; - } - else - { - Console.WriteLine("\nWrong PassWord !\n"); - connection = true; - continuerboucle = true; - u = uvide; - } - } - while (continuerboucle) { connection = continuer(); } - } - - //inscription - while (inscription) - { - Console.WriteLine("\nEntrez un nom :"); - string? nom = Console.ReadLine(); - if (nom == null) { continue; } - Console.WriteLine("\nEntrez un password :"); - string? password = Console.ReadLine(); - if (password == null) { continue; } - try - { - u = db.GetUser(nom); - } - catch (AlreadyUsedException) - { - u = new User(nom, "", HashCodeModel.GetSHA256Hash(password).ToString()); - db.AddUser(u); - db.GetUser(nom).IsConnected = true; - Console.WriteLine("\nConnection réussie !\n"); - menu = false; - break; - } - Console.WriteLine("\nNom d'utilisateur déjà utilisé. \n"); - while (continuerboucle) { inscription = continuer(); } - - } -} -//une fois connecté ou inscription fait -// fonction plus haut deja vérifié - -while (u.IsConnected) -{ - Console.WriteLine("\n|--------------------------------------|"); - Console.WriteLine("| |"); - Console.WriteLine("| menu |"); - Console.WriteLine("| |"); - Console.WriteLine("|--------------------------------------|--------|"); - Console.WriteLine("| |"); - Console.WriteLine("| 1/ - note - |"); - Console.WriteLine("| 2/ - tags - |"); - Console.WriteLine("| 3/ - paramêtres - |"); - Console.WriteLine("| 4/ - se déconnecter - |"); - Console.WriteLine("| |"); - Console.WriteLine("|-----------------------------------------------|\n"); - Console.WriteLine("rentrez votre choix."); - switch (Console.ReadLine()) - { - case "1": - note = true; - break; - case "2": - tags = true; - break; - case "3": - para = true; - break; - case "4": - Console.WriteLine("\ndéconnecté! \n"); - u.IsConnected = false; - u = uvide; - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - - // okay - - - while(note) - { - Console.WriteLine("\n|--------------------------------------|"); - Console.WriteLine("| |"); - Console.WriteLine("| menu - note |"); - Console.WriteLine("| |"); - Console.WriteLine("|--------------------------------------|--------|"); - Console.WriteLine("| |"); - Console.WriteLine("| 1/ - rechercher note - |"); - Console.WriteLine("| 2/ - afficher la liste des notes - |"); - Console.WriteLine("| 3/ - afficher une note - |"); - Console.WriteLine("| 4/ - modifier une note - |"); - Console.WriteLine("| 5/ - écrire dans une note - |"); - Console.WriteLine("| 6/ - créer note - |"); - Console.WriteLine("| 7/ - supprimer note - |"); - Console.WriteLine("| 8/ - retour - |"); - Console.WriteLine("| |"); - Console.WriteLine("|-----------------------------------------------|\n"); - Console.WriteLine("note actuelle : " + n.Name); - Console.WriteLine("rentrez votre choix."); - switch (Console.ReadLine()) - { - case "1": - *//* - *ajouter une date ou une fourchette de date? - *ajouter des tags - *écrire le nom de la note? - *dans cette ordre on peut de façon plus simple - *//* - - //nom de la note - Console.WriteLine("\n Entrez le nom de la note :"); - string? name = Console.ReadLine(); - if (name == null) { break; } - - //choix entre fav ou liste normal - List listToSearchInto = new List(); - Console.WriteLine("\nChercher dans les favoris ? o/N"); - string? fav = Console.ReadLine(); - if (fav == null) { break; } - switch (fav) - { - case "o": - listToSearchInto = u.FavList; - break; - case "O": - listToSearchInto = u.FavList; - break; - case "N": - listToSearchInto = u.NoteList; - break; - case "n": - listToSearchInto = u.NoteList; - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - - // choix du mode de recherche pour date - Console.WriteLine("\nUne seul date '1' ou une fourchette de date '2' ?"); - switch (Console.ReadLine()) - { - case "1": - Console.WriteLine("\nEntrez la date de la note :"); - DateOnly? date = Console.ReadLine(); - if (date == null) { break; } - try - { - listToSearchInto = u.SearchNoteByDate(listToSearchInto, name ,date, date); - } - catch (NotFoundException ex) - { - Console.WriteLine(ex.Message); - } - break; - case "2": - Console.WriteLine("\nEntrez la date de début de la fourchette :"); - DateOnly? date1 = Console.ReadLine(); - if (date1 == null) { break; } - Console.WriteLine("\nEntrez la date de fin de la fourchette :"); - DateOnly? date2 = Console.ReadLine(); - if (date2 == null) { break; } - try - { - listToSearchInto = u.SearchNoteByDate(listToSearchInto, name, date1, date2); - } - catch (NotFoundException ex) - { - Console.WriteLine(ex.Message); - } - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - - // choix du mode de recherche pour tags - Console.WriteLine("\najouter des tags? '1' oui '2' non"); - switch (Console.ReadLine()) - { - case "1": - Console.WriteLine("\nEntrez les tags séparés par des espaces :"); - string? tags = Console.ReadLine(); - - break; - case "2": - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - displayNoteList(listToSearchInto); - break; - - case "2": - displayNote(); - break; - case "3": - if (!choix_note()) { break; } - Console.WriteLine("\n" + n.Name + " :"); - Console.WriteLine(n.Text); - break; - case "4": - if (!choix_note()) { break;} - Console.WriteLine("\nChoisissez le nouveau nom de la note (entrer - nom par defaut)"); - string? wantedNewNameNote = Console.ReadLine(); - wantedNewNameNote??= ""; - u.SetNoteName(n, wantedNewNameNote); - break; - case "5": - if (!choix_note()) { break; } - Console.WriteLine(n.Text); - Console.WriteLine("\nEntrez le texte à ajouter"); - string? wantedTextNote = Console.ReadLine(); - wantedTextNote??= ""; - n.AddText(wantedTextNote); - break; - case "6": - Console.WriteLine("\nChoisissez le nom de la note (entrer - nom par defaut)"); - string? wantedNameNote = Console.ReadLine(); - wantedNameNote ??= ""; - u.CreateNote(wantedNameNote, ""); - break; - case "7": - Console.WriteLine("\nChoisissez le nom de la note"); - string? wantedDeleteNote = Console.ReadLine(); - wantedDeleteNote ??= ""; - try - { - u.DeleteNote(wantedDeleteNote); - } - catch (Exception ex) { Console.WriteLine(ex.Message); } - break; - case "8": - note = false; - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - } - - while (tags) - { - Console.WriteLine("\n|--------------------------------------|"); - Console.WriteLine("| |"); - Console.WriteLine("| menu - tags |"); - Console.WriteLine("| |"); - Console.WriteLine("|--------------------------------------|--------|"); - Console.WriteLine("| |"); - Console.WriteLine("| 1/ - créer tag - |"); - Console.WriteLine("| 2/ - ajouter tag - |"); - Console.WriteLine("| 3/ - supprimer tag - |"); - Console.WriteLine("| 4/ - retour - |"); - Console.WriteLine("| |"); - Console.WriteLine("|-----------------------------------------------|\n"); - Console.WriteLine("rentrez votre choix."); - switch (Console.ReadLine()) - { - case "1": - Console.WriteLine("\nChoisissez le nom du tag."); - string? wantedNameTag = Console.ReadLine(); - wantedNameTag??= "NoName" + u.NoteList.Count.ToString(); - Console.WriteLine("\nChoisissez la couleur du tag."); - string? wantedColorTag = Console.ReadLine(); - wantedColorTag??= "#000000"; - if (wantedColorTag[0] != '#') { wantedColorTag = "#" + wantedColorTag; } - else if (wantedColorTag.Length < 7) { string toadd=""; for(int i = 7-wantedColorTag.Length; i!=0; i--){toadd += "0";} wantedColorTag += toadd ;} - else if (wantedColorTag.Length > 7) { wantedColorTag = wantedColorTag[..7];} - u.CreateTag(wantedNameTag,wantedColorTag); - break; - case "2": - Note wantedAddNote; - Tags wantedAddTag; - Console.WriteLine("\n Plusieurs tags à ajouter ? (o/N)"); - string? wantedAddMultipleTag = Console.ReadLine(); - wantedAddMultipleTag ??= "N"; - if(wantedAddMultipleTag == "o" || wantedAddMultipleTag == "O"){ - displayNote(); - Console.WriteLine("\nDonnez le nom de la note à laquelle ajouter des tags : "); - string? wantedAddNameNote = Console.ReadLine(); - wantedAddNameNote??= ""; - try{ - wantedAddNote = u.GetNoteByName(wantedAddNameNote); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - displayTag(); - Console.WriteLine("\nChoisissez les noms des tags séparés par des espaces."); - string? wantedAddNameTags = Console.ReadLine(); - wantedAddNameTags??= ""; - string[] wantedAddNameTagsList = wantedAddNameTags.Split(' '); - foreach(string wantedAddNameTag in wantedAddNameTagsList) - { - try - { - wantedAddTag = u.GetTagByName(wantedAddNameTag); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - try - { - u.AddTagToNoteList(wantedAddNote, wantedAddTag); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - } - }else if(wantedAddMultipleTag == "n" || wantedAddMultipleTag == "N"){ - displayNote(); - Console.WriteLine("\nChoisissez le nom de la note."); - string? wantedAddNameNote = Console.ReadLine(); - wantedAddNameNote??= ""; - displayTag(); - Console.WriteLine("\nChoisissez le nom du tag."); - string? wantedAddNameTag = Console.ReadLine(); - wantedAddNameTag??= ""; - try - { - wantedAddNote = u.GetNoteByName(wantedAddNameNote); - wantedAddTag = u.GetTagByName(wantedAddNameTag); - u.AddTagToNoteList(wantedAddNote, wantedAddTag); - }catch (Exception ex) { Console.WriteLine(ex.Message); } - }else{ - Console.WriteLine("\nEntrez un choix valide.\n"); - } - break; - case "3": - displayNote(); - Note wantedRemoveNote; - Tags wantedRemoveTag; - Console.WriteLine("\n Choisissez le nom de la note à laquelle supprimer des tags : "); - string? wantedRemoveNameNote = Console.ReadLine(); - wantedRemoveNameNote??= ""; - try{ - wantedRemoveNote = u.GetNoteByName(wantedRemoveNameNote); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - foreach( Tags t in u.NoteTagged[wantedRemoveNote]) - { - Console.WriteLine(t.Name + "\n"); - } - Console.WriteLine("\nChoisissez le nom du tag à supprimer."); - string? wantedRemoveNameTag = Console.ReadLine(); - wantedRemoveNameTag??= ""; - try { - wantedRemoveTag = u.GetTagByName(wantedRemoveNameTag); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - try - { - u.RemoveTagFromNoteList(wantedRemoveNote, wantedRemoveTag); - }catch (Exception ex) { Console.WriteLine(ex.Message); } - break; - case "4": - tags = false; - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - } - - while(para) - { - Console.WriteLine("\n|--------------------------------------|"); - Console.WriteLine("| |"); - Console.WriteLine("| menu - paramêtre |"); - Console.WriteLine("| |"); - Console.WriteLine("|--------------------------------------|--------|"); - Console.WriteLine("| |"); - Console.WriteLine("| 1/ - modifier compte - |"); - Console.WriteLine("| 2/ - thèmes - |"); - Console.WriteLine("| 3/ - supprimer le compte - |"); - Console.WriteLine("| 4/ - retour - |"); - Console.WriteLine("| |"); - Console.WriteLine("|-----------------------------------------------|\n"); - Console.WriteLine("rentrez votre choix."); - switch (Console.ReadLine()) - { - case "1": - paraCompte = true; - break; - case "2": - theme = true; - break; - case "3": - Console.WriteLine("\nÊtes-vous sûr de vouloir supprimer votre compte ? (o/N)"); - string? wantedDelete = Console.ReadLine(); - wantedDelete??= "N"; - if( wantedDelete == "o" || wantedDelete == "O"){ - db.RemoveUser(u); - // vérifier que remove user fait pas d'exception------------------------------------ - Console.WriteLine("\nVotre compte a bien été supprimé.\n"); - para = false; - u = uvide; - break; - }else if( wantedDelete == "n" || wantedDelete == "N"){ - break; - } - break; - case "4": - para = false; - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - while (paraCompte) - { - Console.WriteLine("\n|--------------------------------------|"); - Console.WriteLine("| |"); - Console.WriteLine("| paramêtre - compte |"); - Console.WriteLine("| |"); - Console.WriteLine("|--------------------------------------|--------|"); - Console.WriteLine("| |"); - Console.WriteLine("| 1/ - modifier pseudo - |"); - Console.WriteLine("| 2/ - modifier mot de passe - |"); - Console.WriteLine("| 3/ - modifier l'email |"); - Console.WriteLine("| 4/ - modifier l'image de profil |"); - Console.WriteLine("| 5/ - retour - |"); - Console.WriteLine("| |"); - Console.WriteLine("|-----------------------------------------------|\n"); - Console.WriteLine("rentrez votre choix."); - switch (Console.ReadLine()) - { - case "1": - Console.WriteLine("\nChoisissez le nouveau pseudo."); - string? wantedNewPseudo = Console.ReadLine(); - if(wantedNewPseudo == null){break;} - db.ChangeUsername(u,wantedNewPseudo); - break; - case "2": - Console.WriteLine("\nChoisissez le nouveau mot de passe."); - string? wantedNewPassword = Console.ReadLine(); - if(wantedNewPassword == null){break;} - else if(wantedNewPassword.Length < 8){ - Console.WriteLine("\nLe mot de passe doit contenir au moins 8 caractères.\n"); - break; - } - if(HashCodeModel.GetSHA256Hash(wantedNewPassword).ToString() == u.Password){ - Console.WriteLine("\nLe nouveau mot de passe doit être différent de l'ancien.\n"); - break; - } - u.ChangePassword(wantedNewPassword); - break; - case "3": - Console.WriteLine("\nChoisissez le nouvel email."); - string? wantedNewEmail = Console.ReadLine(); - if(wantedNewEmail == null) { break;} - u.ChangeEmail(wantedNewEmail); - break; - case "4": - Console.WriteLine("\nChoisissez le nouveau chemin de l'image de profil."); - string? wantedNewPath = Console.ReadLine(); - if(wantedNewPath == null) { break;} - u.ChangeProfilePicture(wantedNewPath); - break; - case "5": - paraCompte = false; - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - } - while (theme) - { - Console.WriteLine("\n|--------------------------------------|"); - Console.WriteLine("| |"); - Console.WriteLine("| paramêtre - thèmes |"); - Console.WriteLine("| |"); - Console.WriteLine("|--------------------------------------|--------|"); - Console.WriteLine("| |"); - Console.WriteLine("| 1/ - choisir un thème - |"); - Console.WriteLine("| 2/ - créer un thème - |"); - Console.WriteLine("| 3/ - supprimer un thème - |"); - Console.WriteLine("| 4/ - modifier un thème - |"); - Console.WriteLine("| 5/ - retour - |"); - Console.WriteLine("| |"); - Console.WriteLine("|-----------------------------------------------|\n"); - Console.WriteLine("rentrez votre choix."); - switch (Console.ReadLine()) - { - case "1": - Theme twantedTheme; - displayTheme(); - Console.WriteLine("\nChoisissez le nom du thème."); - string? wantedTheme = Console.ReadLine(); - if(wantedTheme==null){break;} - try - { - twantedTheme = u.GetTheme(wantedTheme); - } - catch (NotFoundException) - { - try - { - twantedTheme = db.GetTheme(wantedTheme); - } - catch (NotFoundException ex2) { Console.WriteLine(ex2.Message); break; } - } - u.ChangeTheme(twantedTheme); - break; - case "2": - List? themeList; - Console.WriteLine("\nChoisissez le nom du thème."); - string? wantedNewThemeName = Console.ReadLine(); - if(wantedNewThemeName==null){break;} - Console.WriteLine("\nChoisissez la couleur du thème."); - themeList = choix_couleur(); - if(themeList == null) { break;} - db.AddTheme(new Theme(wantedNewThemeName, themeList)); - break; - case "3": - Theme t; - Console.WriteLine("\nChoisissez le nom du thème à supprimer."); - string? wantedRemoveTheme = Console.ReadLine(); - if(wantedRemoveTheme == null) {break;} - try{ - t = db.GetTheme(wantedRemoveTheme); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - try{ - db.RemoveTheme(t); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - break; - case "4": - displayTheme(); - Theme themeToModify; - Console.WriteLine("\nChoisissez le nom du thème à modifier."); - string? wantedModifyTheme = Console.ReadLine(); - if(wantedModifyTheme == null){break;} - try{ - themeToModify = db.GetTheme(wantedModifyTheme); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - Console.WriteLine("\nChoisissez le nouveau nom du thème."); - string? wantedNewNameTheme = Console.ReadLine(); - if(wantedNewNameTheme == null) {break;} - try{ - db.ModifyThemeName(themeToModify, wantedNewNameTheme); - }catch (Exception ex) { Console.WriteLine(ex.Message); break;} - Console.WriteLine("\nChoisissez les nouvelles couleurs du thème."); - List? couleurlist = choix_couleur(); - if(couleurlist == null) { break;} - db.ModifyThemeColorList(themeToModify, couleurlist); - break; - case "5": - theme = false; - break; - default: - Console.WriteLine("\nEntrez un choix valide.\n"); - break; - } - } - } -}*/ \ No newline at end of file