diff --git a/MangaMap/Stub/DataContract.cs b/MangaMap/Stub/DataContract.cs index 0b92cda..c8ff406 100644 --- a/MangaMap/Stub/DataContract.cs +++ b/MangaMap/Stub/DataContract.cs @@ -8,37 +8,34 @@ using System.Text; using System.Threading.Tasks; using System.Xml; + namespace MangaMap.Stub { - public class DataContract : IPersistanceManager - { - public string FileName { get; set; } = "SauvegardeDonnees.xml"; - public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory); - //public string FilePath2 { get; set; } = "C:\\Users\\vjour\\UCA\\MapManga\\MangaMap"; - //public string FilePath2 { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "\\..\\..\\Users"); - - public (List, List) chargeDonne() - { - var serializer = new DataContractSerializer(typeof(DataToPersist)); - DataToPersist data; - - if (File.Exists(Path.Combine(FilePath, FileName))) // Vérifiez si le fichier existe - { + public class DataContract : IPersistanceManager + { + public string FileName { get; set; } = "SauvegardeDonnees.xml"; + public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory); - using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName))) - { - data = serializer.ReadObject(s) as DataToPersist; + public (List, List) chargeDonne() + { + var serializer = new DataContractSerializer(typeof(DataToPersist)); + DataToPersist data; + + if (File.Exists(Path.Combine(FilePath, FileName))) // Vérifiez si le fichier existe + { + using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName))) + { + data = serializer.ReadObject(s) as DataToPersist; } } - else { data = new DataToPersist(); // Si le fichier n'existe pas, créez une nouvelle liste } - - return (data.Oeuvres, data.Utilisateurs); - } - + + return (data.Oeuvres, data.Utilisateurs); + } + public void sauvegarder(List o, List u) { var serializer = new DataContractSerializer(typeof(DataToPersist)); @@ -56,8 +53,20 @@ namespace MangaMap.Stub data = new DataToPersist(); } - // Ajouter le nouvel utilisateur à la liste existante - data.Utilisateurs.Add(u.Last()); + // Vérifier si un utilisateur avec le même nom d'utilisateur existe déjà + var existingUser = data.Utilisateurs.FirstOrDefault(user => user.Pseudo == u.Last().Pseudo); + if (existingUser != null) + { + // Mettre à jour l'utilisateur existant + existingUser.MotDePasse = u.Last().MotDePasse; + existingUser.Email = u.Last().Email; + + } + else + { + // Ajouter le nouvel utilisateur à la liste existante + data.Utilisateurs.Add(u.Last()); + } var settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName))) @@ -67,7 +76,7 @@ namespace MangaMap.Stub serializer.WriteObject(w, data); // Enregistrer toutes les données dans le fichier } } - } - + } } + } \ No newline at end of file