From 1058e3260593221986d751daad8ea79ebc1126ed Mon Sep 17 00:00:00 2001 From: majean5 Date: Tue, 7 Jun 2022 23:49:32 +0200 Subject: [PATCH 1/3] persistance qui marche toujours pas --- Business/ManagerUsers.cs | 17 ++++++--- Modèle/Conservation.cs | 10 +++++- Modèle/Zone.cs | 5 ++- Persistance/DataContractPersistance.cs | 50 +++++++++++++++++++++----- Persistance/IPersistanceManager.cs | 6 ++-- StubLib/Stub.cs | 22 ++++++++---- WpfApp1/App.xaml.cs | 26 +++++++++++--- WpfApp1/Persistance/ficExperts | 1 + WpfApp1/Persistance/ficReq | 2 +- WpfApp1/Persistance/ficReqAdd | 2 +- WpfApp1/Persistance/ficReqEdit | 2 +- WpfApp1/Persistance/ficUsers | 2 +- 12 files changed, 114 insertions(+), 31 deletions(-) create mode 100644 WpfApp1/Persistance/ficExperts diff --git a/Business/ManagerUsers.cs b/Business/ManagerUsers.cs index 08fa2c3..85840eb 100644 --- a/Business/ManagerUsers.cs +++ b/Business/ManagerUsers.cs @@ -11,7 +11,8 @@ namespace Business { public class ManagerUsers { - public List Utilisateurs { get; private set; } + public List Utilisateurs { get; private set; } + public List Experts { get; private set; } public Personne SelectedUser { get; set; } /// @@ -26,7 +27,8 @@ namespace Business public ManagerUsers(IPersistanceManager pers) { - Utilisateurs = new List(); + Utilisateurs = new List(); + Experts = new List(); Pers = pers; } public void LoadUsers() @@ -41,7 +43,12 @@ namespace Business Pers.SaveUsers(Utilisateurs); } - public bool AjouterUtilisateur(Personne user) + public void SaveExperts() + { + Pers.SaveExperts(Experts); + } + + public bool AjouterUtilisateur(Utilisateur user) { if (Utilisateurs.Contains(user)) { @@ -52,7 +59,7 @@ namespace Business return true; } - public bool SupprimerUtilisateur(Personne user) + public bool SupprimerUtilisateur(Utilisateur user) { if (!Utilisateurs.Contains(user)) { @@ -67,7 +74,7 @@ namespace Business return Utilisateurs.SingleOrDefault(r => r.Equals(user)); } - public bool ModifieUtilisateur(Personne oldU, Personne newU) + public bool ModifieUtilisateur(Utilisateur oldU, Utilisateur newU) { if (!oldU.Equals(newU)) { diff --git a/Modèle/Conservation.cs b/Modèle/Conservation.cs index de1bac8..ba0b143 100644 --- a/Modèle/Conservation.cs +++ b/Modèle/Conservation.cs @@ -10,15 +10,23 @@ namespace Modèle [DataContract] public enum Conservation { - [DataMember] + [EnumMember] EX, + [EnumMember] EW, + [EnumMember] CR, + [EnumMember] EN, + [EnumMember] VU, + [EnumMember] NT, + [EnumMember] LC, + [EnumMember] DD, + [EnumMember] NE } } diff --git a/Modèle/Zone.cs b/Modèle/Zone.cs index 7a73460..16c2f09 100644 --- a/Modèle/Zone.cs +++ b/Modèle/Zone.cs @@ -10,10 +10,13 @@ namespace Modèle [DataContract] public enum Zone { - [DataMember] + [EnumMember] ATLANTIQUE, + [EnumMember] ARCTIQUE, + [EnumMember] PACIFIQUE, + [EnumMember] INDIEN } } diff --git a/Persistance/DataContractPersistance.cs b/Persistance/DataContractPersistance.cs index 8523f36..01265c8 100644 --- a/Persistance/DataContractPersistance.cs +++ b/Persistance/DataContractPersistance.cs @@ -17,7 +17,9 @@ namespace Persistance public DataContractSerializer SerializerReq { get; set; } = new DataContractSerializer(typeof(List)); public DataContractSerializer SerializerUsers { get; set; } - = new DataContractSerializer(typeof(List)); + = new DataContractSerializer(typeof(List)); + public DataContractSerializer SerializerExperts { get; set; } + = new DataContractSerializer(typeof(List)); @@ -35,6 +37,8 @@ namespace Persistance = "ficReqEdit"; string FileNameUsers { get; set; } = "ficUsers"; + string FileNameExperts { get; set; } + = "ficExperts"; @@ -43,6 +47,7 @@ namespace Persistance string FileReqAdd => Path.Combine(FilePath, FileNameReqAdd); string FileReqEdit => Path.Combine(FilePath, FileNameReqEdit); string FileUsers => Path.Combine(FilePath, FileNameUsers); + string FileExperts => Path.Combine(FilePath, FileNameExperts); @@ -50,7 +55,8 @@ namespace Persistance List requins = new List(); List requinsAdd = new List(); List requinsEdit = new List(); - List users = new List(); + List users = new List(); + List experts = new List(); @@ -78,7 +84,7 @@ namespace Persistance using (Stream stream = File.Create(FileReq)) { - SerializerReq.WriteObject(stream, requins); + SerializerReq.WriteObject(stream, reqs); } } @@ -109,7 +115,7 @@ namespace Persistance using (Stream stream = File.Create(FileReqAdd)) { - SerializerReq.WriteObject(stream, requinsAdd); + SerializerReq.WriteObject(stream, reqs); } } @@ -140,14 +146,14 @@ namespace Persistance using (Stream stream = File.Create(FileReqEdit)) { - SerializerReq.WriteObject(stream, requinsEdit); + SerializerReq.WriteObject(stream, reqs); } } // Méthodes pour les utilisateurs (Utilisateur et Manager) - public List LoadUsers() + public List LoadUsers() { if (!File.Exists(FileUsers)) { @@ -156,13 +162,28 @@ namespace Persistance using (Stream stream = File.OpenRead(FileUsers)) { - users = SerializerUsers.ReadObject(stream) as List; + users = SerializerUsers.ReadObject(stream) as List; } return users; } - public void SaveUsers(List pers) + public List LoadExperts() + { + if (!File.Exists(FileExperts)) + { + throw new FileNotFoundException("The persisance file ficUsers does not exist"); + } + + using (Stream stream = File.OpenRead(FileExperts)) + { + experts = SerializerExperts.ReadObject(stream) as List; + } + + return experts; + } + + public void SaveUsers(List users) { if (!Directory.Exists(FilePath)) { @@ -175,5 +196,18 @@ namespace Persistance } } + public void SaveExperts(List experts) + { + if (!Directory.Exists(FilePath)) + { + Directory.CreateDirectory(FilePath); + } + + using (Stream stream = File.Create(FileExperts)) + { + SerializerExperts.WriteObject(stream, experts); + } + } + } } diff --git a/Persistance/IPersistanceManager.cs b/Persistance/IPersistanceManager.cs index 83de037..3553ca1 100644 --- a/Persistance/IPersistanceManager.cs +++ b/Persistance/IPersistanceManager.cs @@ -18,8 +18,10 @@ namespace Persistance List LoadRequinsAdd(); void SaveRequinsAdd(List reqs); - List LoadUsers(); - void SaveUsers(List pers); + List LoadUsers(); + List LoadExperts(); + void SaveUsers(List users); + void SaveExperts(List experts); } } \ No newline at end of file diff --git a/StubLib/Stub.cs b/StubLib/Stub.cs index bdce730..c6e2430 100644 --- a/StubLib/Stub.cs +++ b/StubLib/Stub.cs @@ -13,7 +13,8 @@ namespace StubLib private List requinsEdit = new List(); private List requinsAdd = new List(); - private List utilisateurs = new List(); + private List utilisateurs = new List(); + private List expert = new List(); public Stub() { @@ -30,7 +31,7 @@ namespace StubLib requinsAdd.Add(new Requin("leQuatrièmeRequinAjouté", "Le requin vraiemnt pas banal", "C'est un requin vraiment pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment vraiment pas banal")); // Utilisateurs utilisateurs.Add(new Utilisateur("a", "salut")); - utilisateurs.Add(new Expert("salut", "hey", "bob")); + expert.Add(new Expert("salut", "hey", "bob")); } @@ -51,7 +52,7 @@ namespace StubLib public void SaveRequinsAdd(List reqs) { - requins = reqs; + requinsAdd = reqs; } public List LoadRequinsEdit() @@ -64,14 +65,23 @@ namespace StubLib requinsEdit = reqs; } - public List LoadUsers() + public List LoadUsers() + { + return new List(utilisateurs); + } + public List LoadExperts() { - return new List(utilisateurs); + return new List(expert); } - public void SaveUsers(List users) + public void SaveUsers(List users) { utilisateurs = users; } + + public void SaveExperts(List experts) + { + expert = experts; + } } } diff --git a/WpfApp1/App.xaml.cs b/WpfApp1/App.xaml.cs index 4ae0600..b09255e 100644 --- a/WpfApp1/App.xaml.cs +++ b/WpfApp1/App.xaml.cs @@ -17,8 +17,24 @@ namespace WpfApp1 { public static IPersistanceManager strat { get; private set; } = new DataContractPersistance(); - public Manager LeManager { get; private set; } = new Manager(strat); - public ManagerUsers LeManagerUsers { get; private set; } = new ManagerUsers(strat); + public static IPersistanceManager stubtruc { get; set; } + = new StubLib.Stub(); + public Manager LeManager { get; private set; } = new Manager(stubtruc); + public ManagerUsers LeManagerUsers { get; private set; } = new ManagerUsers(stubtruc); + + public App() + { + var users = stubtruc.LoadUsers(); + var experts = stubtruc.LoadExperts(); + var requins = stubtruc.LoadRequins(); + var requinsAdd = stubtruc.LoadRequinsAdd(); + var requinsEdit = stubtruc.LoadRequinsEdit(); + strat.SaveUsers(users); + strat.SaveExperts(experts); + strat.SaveRequins(requins); + strat.SaveRequinsAdd(requinsAdd); + strat.SaveRequinsEdit(requinsEdit); + } public void Temp() { @@ -27,13 +43,15 @@ namespace WpfApp1 private void Application_Activated(object sender, EventArgs e) { + /* LeManager.LoadRequins(); - LeManager.Pers = new DataContractPersistance(); + LeManager.Pers = strat; LeManager.SaveRequins(); LeManagerUsers.LoadUsers(); - LeManagerUsers.Pers = new DataContractPersistance(); + LeManagerUsers.Pers = strat; LeManagerUsers.SaveUsers(); + */ } } } diff --git a/WpfApp1/Persistance/ficExperts b/WpfApp1/Persistance/ficExperts new file mode 100644 index 0000000..1724227 --- /dev/null +++ b/WpfApp1/Persistance/ficExperts @@ -0,0 +1 @@ +saluthey2022-06-07T19:49:45.1873684+02:00bob \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReq b/WpfApp1/Persistance/ficReq index 9203cf3..dd65557 100644 --- a/WpfApp1/Persistance/ficReq +++ b/WpfApp1/Persistance/ficReq @@ -1 +1 @@ - \ No newline at end of file +wow il est trop bo(C'est pas un vrai requin)mon requin adorétrop cool ce requinImages/Dormeur-Mexicain.pngImages/rep_Heterodontus_mexicanus.pngATLANTIQUEEWC'est un requin ultra banalIl est pas aussi banal qu'il en a l'airBananeLe requin banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngATLANTIQUELCC'est un requin pas ultra banalIl est vraiment pas banalReq1Le requin pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEX \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReqAdd b/WpfApp1/Persistance/ficReqAdd index 9203cf3..02a716a 100644 --- a/WpfApp1/Persistance/ficReqAdd +++ b/WpfApp1/Persistance/ficReqAdd @@ -1 +1 @@ - \ No newline at end of file +C'est un requin pas ultra banalIl est vraiment pas banalleRequinAjoutéLe requin pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEXC'est un requin vraiment pas ultra banalIl est vraiment vraiment pas banalleDeuxièmeRequinAjoutéLe requin vraiemnt pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEXC'est un requin pas ultra banalIl est vraiment pas banalleTroisièmeRequinAjoutéLe requin pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEXC'est un requin vraiment pas ultra banalIl est vraiment vraiment pas banalleQuatrièmeRequinAjoutéLe requin vraiemnt pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEX \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReqEdit b/WpfApp1/Persistance/ficReqEdit index 9203cf3..056b283 100644 --- a/WpfApp1/Persistance/ficReqEdit +++ b/WpfApp1/Persistance/ficReqEdit @@ -1 +1 @@ - \ No newline at end of file +C'est un requin ultra banalEn fait il est giga banalBananeLe requin banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngATLANTIQUEEW \ No newline at end of file diff --git a/WpfApp1/Persistance/ficUsers b/WpfApp1/Persistance/ficUsers index 40e34f9..f0edb7d 100644 --- a/WpfApp1/Persistance/ficUsers +++ b/WpfApp1/Persistance/ficUsers @@ -1 +1 @@ - \ No newline at end of file +asalut0 \ No newline at end of file From d0879947f7e3e37340841eff39f6cc60466b1e51 Mon Sep 17 00:00:00 2001 From: majean5 Date: Thu, 9 Jun 2022 15:54:12 +0200 Subject: [PATCH 2/3] la persistance enfin --- WpfApp1/App.xaml.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/WpfApp1/App.xaml.cs b/WpfApp1/App.xaml.cs index b09255e..6a5cdc0 100644 --- a/WpfApp1/App.xaml.cs +++ b/WpfApp1/App.xaml.cs @@ -53,5 +53,6 @@ namespace WpfApp1 LeManagerUsers.SaveUsers(); */ } + } } From 51374583dd4117560f40fb3a2fa26cab2c8eb949 Mon Sep 17 00:00:00 2001 From: majean5 Date: Fri, 10 Jun 2022 09:03:08 +0200 Subject: [PATCH 3/3] pareil mais sans les trucs inutiles du stub --- Business/Manager.cs | 26 ++-- Business/ManagerUsers.cs | 22 +++- Persistance/DataContractPersistance.cs | 169 +++++++------------------ Persistance/DataToPersistReq.cs | 21 +++ Persistance/DataToPersistUsers.cs | 19 +++ Persistance/IPersistanceManager.cs | 13 ++ StubLib/Stub.cs | 42 ++---- WpfApp1/App.xaml | 3 +- WpfApp1/App.xaml.cs | 37 ++---- WpfApp1/Persistance/ficExperts | 1 - WpfApp1/Persistance/ficReq | 1 - WpfApp1/Persistance/ficReqAdd | 1 - WpfApp1/Persistance/ficReqEdit | 1 - WpfApp1/Persistance/ficReqs | 113 +++++++++++++++++ WpfApp1/Persistance/ficUsers | 19 ++- WpfApp1/SeConnecter.xaml.cs | 9 ++ WpfApp1/UCRequinValSubmit.xaml.cs | 2 +- WpfApp1/WpfApp1.csproj | 4 + WpfApp1/userControlAcceuil.xaml.cs | 6 +- 19 files changed, 297 insertions(+), 212 deletions(-) create mode 100644 Persistance/DataToPersistReq.cs create mode 100644 Persistance/DataToPersistUsers.cs delete mode 100644 WpfApp1/Persistance/ficExperts delete mode 100644 WpfApp1/Persistance/ficReq delete mode 100644 WpfApp1/Persistance/ficReqAdd delete mode 100644 WpfApp1/Persistance/ficReqEdit create mode 100644 WpfApp1/Persistance/ficReqs diff --git a/Business/Manager.cs b/Business/Manager.cs index 78db1cd..09c27b0 100644 --- a/Business/Manager.cs +++ b/Business/Manager.cs @@ -36,25 +36,29 @@ namespace Business } public void LoadRequins() { + + var data = Pers.LoadRequins(); + Requins.Clear(); - foreach (Requin req in Pers.LoadRequins()) + foreach(var r in data.reqs) { - Requins.Add(req); + Requins.Add(r); } - RequinsEdit.Clear(); - foreach (Requin req in Pers.LoadRequinsEdit()) + RequinsAdd.Clear(); + foreach(var rA in data.reqsAdd) { - RequinsEdit.Add(req); + RequinsAdd.Add(rA); } - RequinsAdd.Clear(); - foreach (Requin req in Pers.LoadRequinsAdd()) + RequinsEdit.Clear(); + foreach(var rE in data.reqsEdit) { - RequinsAdd.Add(req); + RequinsEdit.Add(rE); } + SelectedRequin = null; } - public void SaveRequins() + public void SaveRequins() { List req = new List(); req.AddRange(Requins); @@ -62,10 +66,8 @@ namespace Business edit.AddRange(RequinsEdit); List add = new List(); add.AddRange(RequinsAdd); - Pers.SaveRequins(req); - Pers.SaveRequins(edit); - Pers.SaveRequins(add); + Pers.SaveRequins(req, add, edit); } public bool AjouterRequin(Requin req) diff --git a/Business/ManagerUsers.cs b/Business/ManagerUsers.cs index 85840eb..c813c2e 100644 --- a/Business/ManagerUsers.cs +++ b/Business/ManagerUsers.cs @@ -31,22 +31,32 @@ namespace Business Experts = new List(); Pers = pers; } + public void LoadUsers() { + + var data = Pers.LoadUsers(); + Utilisateurs.Clear(); - Utilisateurs.AddRange(Pers.LoadUsers()); + foreach (var u in data.users) + { + Utilisateurs.Add(u); + } + Experts.Clear(); + foreach (var e in data.experts) + { + Experts.Add(e); + } + SelectedUser = null; } + public void SaveUsers() { - Pers.SaveUsers(Utilisateurs); + Pers.SaveUsers(Utilisateurs, Experts); } - public void SaveExperts() - { - Pers.SaveExperts(Experts); - } public bool AjouterUtilisateur(Utilisateur user) { diff --git a/Persistance/DataContractPersistance.cs b/Persistance/DataContractPersistance.cs index 01265c8..3ed9df7 100644 --- a/Persistance/DataContractPersistance.cs +++ b/Persistance/DataContractPersistance.cs @@ -7,19 +7,18 @@ using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; +using System.Xml; namespace Persistance { public class DataContractPersistance : IPersistanceManager { - // DataContractSerializer pour chaque type + // Serializers pour requins et utlisateurs/experts public DataContractSerializer SerializerReq { get; set; } - = new DataContractSerializer(typeof(List)); + = new DataContractSerializer(typeof(DataToPersistReq)); public DataContractSerializer SerializerUsers { get; set; } - = new DataContractSerializer(typeof(List)); - public DataContractSerializer SerializerExperts { get; set; } - = new DataContractSerializer(typeof(List)); + = new DataContractSerializer(typeof(DataToPersistUsers)); @@ -30,182 +29,104 @@ namespace Persistance // Noms des fichiers string FileNameReq { get; set; } - = "ficReq"; - string FileNameReqAdd { get; set; } - = "ficReqAdd"; - string FileNameReqEdit { get; set; } - = "ficReqEdit"; + = "ficReqs"; string FileNameUsers { get; set; } = "ficUsers"; - string FileNameExperts { get; set; } - = "ficExperts"; // Fichiers complets string FileReq => Path.Combine(FilePath, FileNameReq); - string FileReqAdd => Path.Combine(FilePath, FileNameReqAdd); - string FileReqEdit => Path.Combine(FilePath, FileNameReqEdit); string FileUsers => Path.Combine(FilePath, FileNameUsers); - string FileExperts => Path.Combine(FilePath, FileNameExperts); - // Listes des requins et utilisateurs - List requins = new List(); - List requinsAdd = new List(); - List requinsEdit = new List(); - List users = new List(); - List experts = new List(); + // Settings + public XmlWriterSettings settings { get; set; } + = new XmlWriterSettings() { Indent = true }; - // Méthodes pour les requins de l'application - public List LoadRequins() + // Méthodes pour les utilisateurs et experts + public (List, List) LoadUsers() { - if (!File.Exists(FileReq)) + if (!File.Exists(FileUsers)) { - throw new FileNotFoundException("The persisance ficReq does not exist"); + throw new FileNotFoundException("The persistance file does not exist"); } - using (Stream stream = File.OpenRead(FileReq)) - { - requins = SerializerReq.ReadObject(stream) as List; - } + DataToPersistUsers data; - return requins; - } - public void SaveRequins(List reqs) - { - if (!Directory.Exists(FilePath)) + using (Stream stream = File.OpenRead(FileUsers)) { - Directory.CreateDirectory(FilePath); + data = SerializerUsers.ReadObject(stream) as DataToPersistUsers; } - using (Stream stream = File.Create(FileReq)) - { - SerializerReq.WriteObject(stream, reqs); - } + return (data.Users, data.Experts); } - // Méthodes pour les requins ajoutés par les Utilisateurs - public List LoadRequinsAdd() - { - if (!File.Exists(FileReqAdd)) - { - throw new FileNotFoundException("The persisance file ficReqAdd does not exist"); - } - - using (Stream stream = File.OpenRead(FileReqAdd)) - { - requinsAdd = SerializerReq.ReadObject(stream) as List; - } - - return requinsAdd; - } - - public void SaveRequinsAdd(List reqs) + public void SaveUsers(List users, List experts) { if (!Directory.Exists(FilePath)) { - Directory.CreateDirectory(FilePath); - } - - using (Stream stream = File.Create(FileReqAdd)) - { - SerializerReq.WriteObject(stream, reqs); + Directory.CreateDirectory(FileUsers); } - } - - - // Méthodes pour les requins édités par les utilisateurs - public List LoadRequinsEdit() - { - if (!File.Exists(FileReqEdit)) - { - throw new FileNotFoundException("The persisance file ficReqEdit does not exist"); - } + DataToPersistUsers data = new DataToPersistUsers(); + data.Users.AddRange(users); + data.Experts.AddRange(experts); - using (Stream stream = File.OpenRead(FileReqEdit)) + using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileNameUsers))) { - requinsEdit = SerializerReq.ReadObject(stream) as List; - } - - return requinsEdit; - } - - public void SaveRequinsEdit(List reqs) - { - if (!Directory.Exists(FilePath)) - { - Directory.CreateDirectory(FilePath); - } - - using (Stream stream = File.Create(FileReqEdit)) - { - SerializerReq.WriteObject(stream, reqs); + using (XmlWriter writer = XmlWriter.Create(tw, settings)) + { + SerializerUsers.WriteObject(writer, data); + } } } - // Méthodes pour les utilisateurs (Utilisateur et Manager) - public List LoadUsers() + // Méthodes pour tous les requins + public (List, List, List) LoadRequins() { - if (!File.Exists(FileUsers)) + if (!File.Exists(FileReq)) { - throw new FileNotFoundException("The persisance file ficUsers does not exist"); + throw new FileNotFoundException("The persistance file does not exist"); } - using (Stream stream = File.OpenRead(FileUsers)) - { - users = SerializerUsers.ReadObject(stream) as List; - } + DataToPersistReq data; - return users; - } - - public List LoadExperts() - { - if (!File.Exists(FileExperts)) - { - throw new FileNotFoundException("The persisance file ficUsers does not exist"); - } - - using (Stream stream = File.OpenRead(FileExperts)) + using (Stream stream = File.OpenRead(FileReq)) { - experts = SerializerExperts.ReadObject(stream) as List; + data = SerializerReq.ReadObject(stream) as DataToPersistReq; } - return experts; + return (data.Requins, data.RequinsAdd, data.RequinsEdit); } - public void SaveUsers(List users) - { - if (!Directory.Exists(FilePath)) - { - Directory.CreateDirectory(FilePath); - } - using (Stream stream = File.Create(FileUsers)) - { - SerializerUsers.WriteObject(stream, users); - } - } - public void SaveExperts(List experts) + public void SaveRequins(List reqs, List reqsAdd, List reqsEdit) { if (!Directory.Exists(FilePath)) { Directory.CreateDirectory(FilePath); } - using (Stream stream = File.Create(FileExperts)) + DataToPersistReq data = new DataToPersistReq(); + data.Requins.AddRange(reqs); + data.RequinsAdd.AddRange(reqsAdd); + data.RequinsEdit.AddRange(reqsEdit); + + using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileReq))) { - SerializerExperts.WriteObject(stream, experts); + using (XmlWriter writer = XmlWriter.Create(tw, settings)) + { + SerializerReq.WriteObject(writer, data); + } } } diff --git a/Persistance/DataToPersistReq.cs b/Persistance/DataToPersistReq.cs new file mode 100644 index 0000000..24e27cd --- /dev/null +++ b/Persistance/DataToPersistReq.cs @@ -0,0 +1,21 @@ +using Modèle; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace Persistance +{ + [DataContract] + class DataToPersistReq + { + [DataMember] + public List Requins { get; set; } = new List(); + [DataMember] + public List RequinsAdd { get; set; } = new List(); + [DataMember] + public List RequinsEdit { get; set; } = new List(); + } +} diff --git a/Persistance/DataToPersistUsers.cs b/Persistance/DataToPersistUsers.cs new file mode 100644 index 0000000..146ee02 --- /dev/null +++ b/Persistance/DataToPersistUsers.cs @@ -0,0 +1,19 @@ +using Modèle; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace Persistance +{ + [DataContract] + class DataToPersistUsers + { + [DataMember] + public List Users { get; set; } = new List(); + [DataMember] + public List Experts { get; set; } = new List(); + } +} diff --git a/Persistance/IPersistanceManager.cs b/Persistance/IPersistanceManager.cs index 3553ca1..02c0f44 100644 --- a/Persistance/IPersistanceManager.cs +++ b/Persistance/IPersistanceManager.cs @@ -10,6 +10,7 @@ namespace Persistance { public interface IPersistanceManager { + /* List LoadRequins(); void SaveRequins(List reqs); @@ -23,5 +24,17 @@ namespace Persistance void SaveUsers(List users); void SaveExperts(List experts); + + (List reqs, List reqsAdd, List reqsEdit, List users, List experts) Load(); + void Save(List reqs, List reqsAdd, List reqsEdit, List users, List experts); + + */ + + + (List reqs, List reqsAdd, List reqsEdit) LoadRequins(); + void SaveRequins(List reqs, List reqsAdd, List reqsEdit); + (List users, List experts) LoadUsers(); + void SaveUsers(List users, List experts); + } } \ No newline at end of file diff --git a/StubLib/Stub.cs b/StubLib/Stub.cs index c6e2430..92a50ef 100644 --- a/StubLib/Stub.cs +++ b/StubLib/Stub.cs @@ -35,52 +35,26 @@ namespace StubLib } - public List LoadRequins() + public (List reqs, List reqsAdd, List reqsEdit) LoadRequins() { - return new List(requins); + return (new List(requins), new List(requinsAdd), new List(requinsEdit)); } - public void SaveRequins(List reqs) + public void SaveRequins(List reqs, List reqsAdd, List reqsEdit) { requins = reqs; + requinsAdd = reqsAdd; + requinsEdit = reqsEdit; } - public List LoadRequinsAdd() + public (List users, List experts) LoadUsers() { - return new List(requinsAdd); + return (new List(utilisateurs), new List(expert)); } - public void SaveRequinsAdd(List reqs) - { - requinsAdd = reqs; - } - - public List LoadRequinsEdit() - { - return new List(requinsEdit); - } - - public void SaveRequinsEdit(List reqs) - { - requinsEdit = reqs; - } - - public List LoadUsers() - { - return new List(utilisateurs); - } - public List LoadExperts() - { - return new List(expert); - } - - public void SaveUsers(List users) + public void SaveUsers(List users, List experts) { utilisateurs = users; - } - - public void SaveExperts(List experts) - { expert = experts; } } diff --git a/WpfApp1/App.xaml b/WpfApp1/App.xaml index e700dec..0c062d3 100644 --- a/WpfApp1/App.xaml +++ b/WpfApp1/App.xaml @@ -2,8 +2,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp1" - StartupUri="MainWindow.xaml" - Activated="Application_Activated"> + StartupUri="MainWindow.xaml"> diff --git a/WpfApp1/App.xaml.cs b/WpfApp1/App.xaml.cs index 6a5cdc0..c080c54 100644 --- a/WpfApp1/App.xaml.cs +++ b/WpfApp1/App.xaml.cs @@ -19,21 +19,21 @@ namespace WpfApp1 = new DataContractPersistance(); public static IPersistanceManager stubtruc { get; set; } = new StubLib.Stub(); - public Manager LeManager { get; private set; } = new Manager(stubtruc); - public ManagerUsers LeManagerUsers { get; private set; } = new ManagerUsers(stubtruc); + public Manager LeManager { get; private set; } = new Manager(strat); + public ManagerUsers LeManagerUsers { get; private set; } = new ManagerUsers(strat); public App() { - var users = stubtruc.LoadUsers(); - var experts = stubtruc.LoadExperts(); - var requins = stubtruc.LoadRequins(); - var requinsAdd = stubtruc.LoadRequinsAdd(); - var requinsEdit = stubtruc.LoadRequinsEdit(); - strat.SaveUsers(users); - strat.SaveExperts(experts); - strat.SaveRequins(requins); - strat.SaveRequinsAdd(requinsAdd); - strat.SaveRequinsEdit(requinsEdit); + var dataReq = strat.LoadRequins(); + var dataUsers = strat.LoadUsers(); + var users = dataUsers.users; + var experts = dataUsers.experts; + var requins = dataReq.reqs; + var requinsAdd = dataReq.reqsAdd; + var requinsEdit = dataReq.reqsEdit; + + strat.SaveRequins(requins, requinsAdd, requinsEdit); + strat.SaveUsers(users, experts); } public void Temp() @@ -41,18 +41,5 @@ namespace WpfApp1 var mw = MainWindow as MainWindow; } - private void Application_Activated(object sender, EventArgs e) - { - /* - LeManager.LoadRequins(); - LeManager.Pers = strat; - LeManager.SaveRequins(); - - LeManagerUsers.LoadUsers(); - LeManagerUsers.Pers = strat; - LeManagerUsers.SaveUsers(); - */ - } - } } diff --git a/WpfApp1/Persistance/ficExperts b/WpfApp1/Persistance/ficExperts deleted file mode 100644 index 1724227..0000000 --- a/WpfApp1/Persistance/ficExperts +++ /dev/null @@ -1 +0,0 @@ -saluthey2022-06-07T19:49:45.1873684+02:00bob \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReq b/WpfApp1/Persistance/ficReq deleted file mode 100644 index dd65557..0000000 --- a/WpfApp1/Persistance/ficReq +++ /dev/null @@ -1 +0,0 @@ -wow il est trop bo(C'est pas un vrai requin)mon requin adorétrop cool ce requinImages/Dormeur-Mexicain.pngImages/rep_Heterodontus_mexicanus.pngATLANTIQUEEWC'est un requin ultra banalIl est pas aussi banal qu'il en a l'airBananeLe requin banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngATLANTIQUELCC'est un requin pas ultra banalIl est vraiment pas banalReq1Le requin pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEX \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReqAdd b/WpfApp1/Persistance/ficReqAdd deleted file mode 100644 index 02a716a..0000000 --- a/WpfApp1/Persistance/ficReqAdd +++ /dev/null @@ -1 +0,0 @@ -C'est un requin pas ultra banalIl est vraiment pas banalleRequinAjoutéLe requin pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEXC'est un requin vraiment pas ultra banalIl est vraiment vraiment pas banalleDeuxièmeRequinAjoutéLe requin vraiemnt pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEXC'est un requin pas ultra banalIl est vraiment pas banalleTroisièmeRequinAjoutéLe requin pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEXC'est un requin vraiment pas ultra banalIl est vraiment vraiment pas banalleQuatrièmeRequinAjoutéLe requin vraiemnt pas banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngPACIFIQUEEX \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReqEdit b/WpfApp1/Persistance/ficReqEdit deleted file mode 100644 index 056b283..0000000 --- a/WpfApp1/Persistance/ficReqEdit +++ /dev/null @@ -1 +0,0 @@ -C'est un requin ultra banalEn fait il est giga banalBananeLe requin banalImages/White_shark.pngImages/rep_Heterodontus_mexicanus.pngATLANTIQUEEW \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReqs b/WpfApp1/Persistance/ficReqs new file mode 100644 index 0000000..b6bd986 --- /dev/null +++ b/WpfApp1/Persistance/ficReqs @@ -0,0 +1,113 @@ + + + + + wow il est trop bo + (C'est pas un vrai requin) + mon requin adoré + trop cool ce requin + Images/Dormeur-Mexicain.png + Images/rep_Heterodontus_mexicanus.png + + ATLANTIQUE + + EW + Videos/Vid-dormeur-mexicain.mp4 + + + C'est un requin ultra banal + Il est pas aussi banal qu'il en a l'air + Banane + Le requin banal + Images/White_shark.png + Images/rep_Heterodontus_mexicanus.png + + ATLANTIQUE + + LC + Videos/Vid-Requin-Blanc.mp4 + + + C'est un requin pas ultra banal + Il est vraiment pas banal + Req1 + Le requin pas banal + Images/White_shark.png + Images/rep_Heterodontus_mexicanus.png + + PACIFIQUE + + EX + Videos/Vid-dormeur-mexicain.mp4 + + + + + C'est un requin pas ultra banal + Il est vraiment pas banal + leRequinAjouté + Le requin pas banal + Images/White_shark.png + Images/rep_Heterodontus_mexicanus.png + + PACIFIQUE + + EX + Videos/Vid-dormeur-mexicain.mp4 + + + C'est un requin vraiment pas ultra banal + Il est vraiment vraiment pas banal + leDeuxièmeRequinAjouté + Le requin vraiemnt pas banal + Images/White_shark.png + Images/rep_Heterodontus_mexicanus.png + + PACIFIQUE + + EX + Videos/Vid-dormeur-mexicain.mp4 + + + C'est un requin pas ultra banal + Il est vraiment pas banal + leTroisièmeRequinAjouté + Le requin pas banal + Images/White_shark.png + Images/rep_Heterodontus_mexicanus.png + + PACIFIQUE + + EX + Videos/Vid-dormeur-mexicain.mp4 + + + C'est un requin vraiment pas ultra banal + Il est vraiment vraiment pas banal + leQuatrièmeRequinAjouté + Le requin vraiemnt pas banal + Images/White_shark.png + Images/rep_Heterodontus_mexicanus.png + + PACIFIQUE + + EX + Videos/Vid-dormeur-mexicain.mp4 + + + + + C'est un requin ultra banal + En fait il est giga banal + Banane + Le requin banal + Images/White_shark.png + Images/rep_Heterodontus_mexicanus.png + + ATLANTIQUE + + EW + Videos/Vid-Requin-Blanc.mp4 + + + \ No newline at end of file diff --git a/WpfApp1/Persistance/ficUsers b/WpfApp1/Persistance/ficUsers index f0edb7d..f9c3281 100644 --- a/WpfApp1/Persistance/ficUsers +++ b/WpfApp1/Persistance/ficUsers @@ -1 +1,18 @@ -asalut0 \ No newline at end of file + + + + + salut + hey + 2022-06-09T14:59:29.3884138+02:00 + bob + + + + + a + salut + 0 + + + \ No newline at end of file diff --git a/WpfApp1/SeConnecter.xaml.cs b/WpfApp1/SeConnecter.xaml.cs index 5fa0f3b..62cd3c6 100644 --- a/WpfApp1/SeConnecter.xaml.cs +++ b/WpfApp1/SeConnecter.xaml.cs @@ -61,6 +61,15 @@ namespace WpfApp1 return; } } + foreach(Personne p in Mgr.Experts) + { + if (p.Email==email && p.MotDePasse == password) + { + Mgr.SelectedUser = p; + Close(); + return; + } + } MessageBox.Show("L'Email ou le mot de passe est incorrect"); } } diff --git a/WpfApp1/UCRequinValSubmit.xaml.cs b/WpfApp1/UCRequinValSubmit.xaml.cs index 66e56d2..b2799aa 100644 --- a/WpfApp1/UCRequinValSubmit.xaml.cs +++ b/WpfApp1/UCRequinValSubmit.xaml.cs @@ -60,7 +60,7 @@ namespace WpfApp1 private void exit_Click(object sender, RoutedEventArgs e) { - + } private void valider_Click(object sender, RoutedEventArgs e) diff --git a/WpfApp1/WpfApp1.csproj b/WpfApp1/WpfApp1.csproj index b09de9f..45d9a05 100644 --- a/WpfApp1/WpfApp1.csproj +++ b/WpfApp1/WpfApp1.csproj @@ -131,4 +131,8 @@ + + + + diff --git a/WpfApp1/userControlAcceuil.xaml.cs b/WpfApp1/userControlAcceuil.xaml.cs index 8f80bf0..9a9c443 100644 --- a/WpfApp1/userControlAcceuil.xaml.cs +++ b/WpfApp1/userControlAcceuil.xaml.cs @@ -38,10 +38,10 @@ namespace WpfApp1 } private void add_Click(object sender, RoutedEventArgs e) - { + {/* var addSharkWindow = new AddAShark(); addSharkWindow.ShowDialog(); - /* + */ if (MgrUser.SelectedUser == null) { MessageBox.Show("Vous avez besoin d'être connecté pour accéder à cette fonctionnalité"); @@ -58,7 +58,7 @@ namespace WpfApp1 var validerSumbit = new ValiderSubmit(); validerSumbit.ShowDialog(); } - */ + }