diff --git a/Persistance/DataContractPersistance.cs b/Persistance/DataContractPersistance.cs index 8b5d786..523d935 100644 --- a/Persistance/DataContractPersistance.cs +++ b/Persistance/DataContractPersistance.cs @@ -1,7 +1,9 @@ using Modèle; using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; @@ -9,37 +11,110 @@ namespace Persistance { public class DataContractPersistance : IPersistanceManager { + + // DataContractSerializer pour chaque type + public DataContractSerializer SerializerReq { get; set; } + = new DataContractSerializer(typeof(List)); + public DataContractSerializer SerializerUsers { get; set; } + = new DataContractSerializer(typeof(List)); + + + + + // Chemin des fichiers + string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//Persistance"); + + + + + // Noms des fichiers + string FileNameReq { get; set; } + string FileNameReqAdd { get; set; } + string FileNameReqEdit { get; set; } + string FileNameUsers { get; set; } + + + + + // 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); + + + + + // Listes des requins et utilisateurs + List requins = new List(); + List requinsAdd = new List(); + List requinEdit = new List(); + List users = new List(); + + + + + // Méthodes pour les requins de l'application public List LoadRequins() { - throw new NotImplementedException(); - } + if (File.Exists(FileReq)) + { + throw new FileNotFoundException("The persisance file Persisitance does not exist"); + } - public List LoadRequinsAdd() + using (Stream stream = File.OpenRead(FileReq)) + { + requins = SerializerReq.ReadObject(stream) as List; + } + + return requins; + } + public void SaveRequins(List reqs) { - throw new NotImplementedException(); + if (!Directory.Exists(FilePath)) + { + Directory.CreateDirectory(FilePath); + } + + using (Stream stream = File.Create(FileReq)) + { + SerializerReq.WriteObject(stream, requins); + } } - public List LoadRequinsEdit() + + + + // Méthodes pour les requins ajoutés par les Utilisateurs + public List LoadRequinsAdd() { throw new NotImplementedException(); } - public List LoadUsers() + public void SaveRequinsAdd(List reqs) { throw new NotImplementedException(); } - public void SaveRequins(List reqs) + + + + // Méthodes pour les requins édités par les utilisateurs + public List LoadRequinsEdit() { throw new NotImplementedException(); } - public void SaveRequinsAdd(List reqs) + public void SaveRequinsEdit(List reqs) { throw new NotImplementedException(); } - public void SaveRequinsEdit(List reqs) + + + + // Méthodes pour les utilisateurs (Utilisateur et Manager) + public List LoadUsers() { throw new NotImplementedException(); } @@ -48,5 +123,6 @@ namespace Persistance { throw new NotImplementedException(); } + } } diff --git a/StubLib/Stub.cs b/StubLib/Stub.cs index 6e83638..af5bbfe 100644 --- a/StubLib/Stub.cs +++ b/StubLib/Stub.cs @@ -23,6 +23,7 @@ namespace StubLib requins.Add(new Requin("Banane", "Le requin banal", "C'est un requin ultra banal", "Images/White_shark.png", "Videos/Vid-Requin-Blanc.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.LC, zone, "Il est pas aussi banal qu'il en a l'air")); requins.Add(new Requin("Req1", "Le requin pas banal", "C'est un requin pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment pas banal")); requinsAdd.Add(new Requin("leRequinAjouté", "Le requin pas banal", "C'est un requin pas ultra banal", "Images/White_shark.png", "Videos/Vid-dormeur-mexicain.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EX, zone2, "Il est vraiment pas banal")); + requinsAdd.Add(new Requin("leDeuxiè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")); requinsEdit.Add(new Requin("Banane", "Le requin banal", "C'est un requin ultra banal", "Images/White_shark.png", "Videos/Vid-Requin-Blanc.mp4", "Images/rep_Heterodontus_mexicanus.png", Conservation.EW, zone, "En fait il est giga banal")); utilisateurs.Add(new Utilisateur("a", "salut")); utilisateurs.Add(new Expert("salut", "hey", "bob")); diff --git a/WpfApp1/App.xaml.cs b/WpfApp1/App.xaml.cs index 9f6b386..20aa0a4 100644 --- a/WpfApp1/App.xaml.cs +++ b/WpfApp1/App.xaml.cs @@ -15,6 +15,7 @@ namespace WpfApp1 /// public partial class App : Application { + public IPersistanceManager strat = new DataContractPersistance(); public Manager LeManager { get; private set; } = new Manager(new StubLib.Stub()); public ManagerUsers LeManagerUser { get; private set; } = new ManagerUsers(new StubLib.Stub()); diff --git a/WpfApp1/ValiderSubmit.xaml b/WpfApp1/ValiderSubmit.xaml index 67cd6bb..fa1c294 100644 --- a/WpfApp1/ValiderSubmit.xaml +++ b/WpfApp1/ValiderSubmit.xaml @@ -9,7 +9,12 @@ - + + @@ -25,16 +30,17 @@ - + + + + + + + - + - - - - - diff --git a/WpfApp1/ValiderSubmit.xaml.cs b/WpfApp1/ValiderSubmit.xaml.cs index 44ffd63..7ed6f7f 100644 --- a/WpfApp1/ValiderSubmit.xaml.cs +++ b/WpfApp1/ValiderSubmit.xaml.cs @@ -38,12 +38,6 @@ namespace WpfApp1 chargerUC(); - - } - - public void ContentControlSwapDes(Requin req) - { - contentControl.Content = new userControlDescription { requin = req }; } private void exit_Click(object sender, RoutedEventArgs e) @@ -55,30 +49,23 @@ namespace WpfApp1 { foreach (Requin req in MgrAddEdit.RequinsAdd) { - laListe.Items.Add(new UserControlRequin { requin = req, type=UCrequinType.add }); + laListeAdd.Items.Add(new UserControlRequin { requin = req, type=UCrequinType.add }); } foreach (Requin req in MgrAddEdit.RequinsEdit) { - laListe.Items.Add(new UserControlRequin { requin = req, type = UCrequinType.edit }); + laListeEdit.Items.Add(new UserControlRequin { requin = req, type = UCrequinType.edit }); } } - + public void ContentControlSwapDes(Requin req) + { + //contentControl.Content = new userControlDescription { requin = req }; + } - public void PremierRequin() + private void addShark_Click(object sender, RoutedEventArgs e) { - if (MgrAddEdit.RequinsAdd.Count > 0) - { - contentControl.Content = new UCRequinValSubmit { requin = MgrAddEdit.RequinsAdd[0] }; - } - else if (MgrAddEdit.RequinsEdit.Count > 0) - { - contentControl.Content = new UCRequinValSubmit { requin = MgrAddEdit.RequinsEdit[0] }; - } - else - { - MessageBox.Show("Tous les requins ont été ajouté"); - } + var AddSharkWindow = new AddAShark(); + AddSharkWindow.ShowDialog(); } } } 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 @@ + + + +