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