diff --git a/Business/Manager.cs b/Business/Manager.cs index 209204e..08f3dc7 100644 --- a/Business/Manager.cs +++ b/Business/Manager.cs @@ -19,7 +19,7 @@ namespace Business /// DéPENDANCE /// - public IPersistanceManager Pers { get; private set; } + public IPersistanceManager Pers { get; set; } /// /// constructeur avec INJECTION DE LA DéPENDANCE diff --git a/Business/ManagerAddEdit.cs b/Business/ManagerAddEdit.cs index 783db8f..90b710b 100644 --- a/Business/ManagerAddEdit.cs +++ b/Business/ManagerAddEdit.cs @@ -22,7 +22,7 @@ namespace Business public Requin SelectedRequin { get; set; } - public IPersistanceManager Pers { get; private set; } + public IPersistanceManager Pers { get; set; } public ManagerAddEdit(IPersistanceManager pers) { diff --git a/Business/ManagerUsers.cs b/Business/ManagerUsers.cs index 5a97ef5..ce5ff07 100644 --- a/Business/ManagerUsers.cs +++ b/Business/ManagerUsers.cs @@ -19,7 +19,7 @@ namespace Business /// DéPENDANCE /// - public IPersistanceManager Pers { get; private set; } + public IPersistanceManager Pers { get; set; } /// /// constructeur avec INJECTION DE LA DéPENDANCE diff --git a/Modèle/Conservation.cs b/Modèle/Conservation.cs index 4a63995..de1bac8 100644 --- a/Modèle/Conservation.cs +++ b/Modèle/Conservation.cs @@ -1,13 +1,16 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Modèle { + [DataContract] public enum Conservation { + [DataMember] EX, EW, CR, diff --git a/Modèle/Expert.cs b/Modèle/Expert.cs index 9e5bd12..c57d1bf 100644 --- a/Modèle/Expert.cs +++ b/Modèle/Expert.cs @@ -1,14 +1,18 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Modèle { + [DataContract] public class Expert : Personne { + [DataMember] public DateTime DateD { get; private set; } + [DataMember] public string Surnom { get; private set; } public Expert(string email, string mdp, string surnom) : base(email, mdp) diff --git a/Modèle/Personne.cs b/Modèle/Personne.cs index 479ad33..2c5b034 100644 --- a/Modèle/Personne.cs +++ b/Modèle/Personne.cs @@ -1,14 +1,18 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Modèle { + [DataContract] public abstract class Personne { + [DataMember] public string Email { get; protected set; } + [DataMember] public string MotDePasse { get; protected set; } public Personne(string email, string mdp) diff --git a/Modèle/Requin.cs b/Modèle/Requin.cs index a7e0f9f..bc4ca4c 100644 --- a/Modèle/Requin.cs +++ b/Modèle/Requin.cs @@ -1,21 +1,32 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Modèle { + [DataContract] public class Requin : IEquatable { + [DataMember] public string Nom { get; private set; } + [DataMember] public string NomSci { get; private set; } + [DataMember] public string Description { get; private set; } + [DataMember] public string Photo { get; private set; } + [DataMember] public string Video { get; private set; } + [DataMember] public string PhotoCarte { get; private set; } + [DataMember] public Conservation StatutCons { get; private set; } + [DataMember] public string FunFact { get; private set; } + [DataMember] public List Repartition { get; private set; } diff --git a/Modèle/Utilisateur.cs b/Modèle/Utilisateur.cs index 5c69cb6..85bad3c 100644 --- a/Modèle/Utilisateur.cs +++ b/Modèle/Utilisateur.cs @@ -1,13 +1,16 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Modèle { + [DataContract] public class Utilisateur : Personne { + [DataMember] public int NbSubmit { get; private set; } public Utilisateur(string mail, string mdp): base(mail, mdp) { diff --git a/Modèle/Zone.cs b/Modèle/Zone.cs index a4ad8b2..7a73460 100644 --- a/Modèle/Zone.cs +++ b/Modèle/Zone.cs @@ -1,13 +1,16 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Modèle { + [DataContract] public enum Zone { + [DataMember] ATLANTIQUE, ARCTIQUE, PACIFIQUE, diff --git a/Persistance/DataContractPersistance.cs b/Persistance/DataContractPersistance.cs index 523d935..70a6682 100644 --- a/Persistance/DataContractPersistance.cs +++ b/Persistance/DataContractPersistance.cs @@ -1,6 +1,7 @@ using Modèle; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Runtime.Serialization; @@ -20,19 +21,20 @@ namespace Persistance - // Chemin des fichiers - string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//Persistance"); - + string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//Persistance"); // Noms des fichiers string FileNameReq { get; set; } + = "ficReq"; string FileNameReqAdd { get; set; } + = "ficReqAdd"; string FileNameReqEdit { get; set; } + = "ficReqEdit"; string FileNameUsers { get; set; } - + = "ficUsers"; @@ -44,32 +46,30 @@ namespace Persistance - // Listes des requins et utilisateurs - List requins = new List(); - List requinsAdd = new List(); - List requinEdit = new List(); - List users = new List(); - + ObservableCollection requins = new ObservableCollection(); + ObservableCollection requinsAdd = new ObservableCollection(); + ObservableCollection requinsEdit = new ObservableCollection(); + ObservableCollection users = new ObservableCollection(); // Méthodes pour les requins de l'application - public List LoadRequins() + public ObservableCollection LoadRequins() { - if (File.Exists(FileReq)) + if (!File.Exists(FileReq)) { - throw new FileNotFoundException("The persisance file Persisitance does not exist"); + throw new FileNotFoundException("The persisance ficReq does not exist"); } using (Stream stream = File.OpenRead(FileReq)) { - requins = SerializerReq.ReadObject(stream) as List; + requins = SerializerReq.ReadObject(stream) as ObservableCollection; } return requins; } - public void SaveRequins(List reqs) + public void SaveRequins(ObservableCollection reqs) { if (!Directory.Exists(FilePath)) { @@ -84,44 +84,95 @@ namespace Persistance - // Méthodes pour les requins ajoutés par les Utilisateurs - public List LoadRequinsAdd() + public ObservableCollection LoadRequinsAdd() { - throw new NotImplementedException(); + 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 ObservableCollection; + } + + return requinsAdd; } - public void SaveRequinsAdd(List reqs) + public void SaveRequinsAdd(ObservableCollection reqs) { - throw new NotImplementedException(); - } + if (!Directory.Exists(FilePath)) + { + Directory.CreateDirectory(FilePath); + } + using (Stream stream = File.Create(FileReqAdd)) + { + SerializerReq.WriteObject(stream, requinsAdd); + } + } // Méthodes pour les requins édités par les utilisateurs - public List LoadRequinsEdit() + public ObservableCollection LoadRequinsEdit() { - throw new NotImplementedException(); + if (!File.Exists(FileReqEdit)) + { + throw new FileNotFoundException("The persisance file ficReqEdit does not exist"); + } + + using (Stream stream = File.OpenRead(FileReqEdit)) + { + requinsEdit = SerializerReq.ReadObject(stream) as ObservableCollection; + } + + return requinsEdit; } - public void SaveRequinsEdit(List reqs) + public void SaveRequinsEdit(ObservableCollection reqs) { - throw new NotImplementedException(); - } + if (!Directory.Exists(FilePath)) + { + Directory.CreateDirectory(FilePath); + } + using (Stream stream = File.Create(FileReqEdit)) + { + SerializerReq.WriteObject(stream, requinsEdit); + } + } // Méthodes pour les utilisateurs (Utilisateur et Manager) - public List LoadUsers() + public ObservableCollection LoadUsers() { - throw new NotImplementedException(); + if (!File.Exists(FileUsers)) + { + throw new FileNotFoundException("The persisance file ficUsers does not exist"); + } + + using (Stream stream = File.OpenRead(FileUsers)) + { + users = SerializerUsers.ReadObject(stream) as ObservableCollection; + } + + return users; } - public void SaveUsers(List pers) + public void SaveUsers(ObservableCollection pers) { - throw new NotImplementedException(); + if (!Directory.Exists(FilePath)) + { + Directory.CreateDirectory(FilePath); + } + + using (Stream stream = File.Create(FileUsers)) + { + SerializerUsers.WriteObject(stream, users); + } } } diff --git a/Persistance/IPersistanceManager.cs b/Persistance/IPersistanceManager.cs index 1449a30..f529898 100644 --- a/Persistance/IPersistanceManager.cs +++ b/Persistance/IPersistanceManager.cs @@ -1,6 +1,7 @@ using Modèle; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -9,18 +10,18 @@ namespace Persistance { public interface IPersistanceManager { - List LoadRequins(); - void SaveRequins(List reqs); + ObservableCollection LoadRequins(); + void SaveRequins(ObservableCollection reqs); - List LoadRequinsEdit(); - void SaveRequinsEdit(List reqs); + ObservableCollection LoadRequinsEdit(); + void SaveRequinsEdit(ObservableCollection reqs); - List LoadRequinsAdd(); - void SaveRequinsAdd(List reqs); + ObservableCollection LoadRequinsAdd(); + void SaveRequinsAdd(ObservableCollection reqs); - List LoadUsers(); - void SaveUsers(List pers); + ObservableCollection LoadUsers(); + void SaveUsers(ObservableCollection pers); } } \ No newline at end of file diff --git a/StubLib/Stub.cs b/StubLib/Stub.cs index 14971c5..2556ae7 100644 --- a/StubLib/Stub.cs +++ b/StubLib/Stub.cs @@ -24,10 +24,12 @@ namespace StubLib 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")); + requinsAdd.Add(new Requin("leTroisièmeRequinAjouté", "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("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")); - // Utilisateurs - + } public List LoadRequins() diff --git a/WpfApp1/App.xaml b/WpfApp1/App.xaml index 0c062d3..e700dec 100644 --- a/WpfApp1/App.xaml +++ b/WpfApp1/App.xaml @@ -2,7 +2,8 @@ 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"> + StartupUri="MainWindow.xaml" + Activated="Application_Activated"> diff --git a/WpfApp1/App.xaml.cs b/WpfApp1/App.xaml.cs index 20aa0a4..4ae0600 100644 --- a/WpfApp1/App.xaml.cs +++ b/WpfApp1/App.xaml.cs @@ -15,14 +15,25 @@ 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()); + 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 ManagerAddEdit LeManagerAddEdit { get; private set; } = new ManagerAddEdit(new StubLib.Stub()); public void Temp() { var mw = MainWindow as MainWindow; } + + private void Application_Activated(object sender, EventArgs e) + { + LeManager.LoadRequins(); + LeManager.Pers = new DataContractPersistance(); + LeManager.SaveRequins(); + + LeManagerUsers.LoadUsers(); + LeManagerUsers.Pers = new DataContractPersistance(); + LeManagerUsers.SaveUsers(); + } } } diff --git a/WpfApp1/CreerCompte.xaml.cs b/WpfApp1/CreerCompte.xaml.cs index 5c8d2af..749fb30 100644 --- a/WpfApp1/CreerCompte.xaml.cs +++ b/WpfApp1/CreerCompte.xaml.cs @@ -26,7 +26,7 @@ namespace WpfApp1 InitializeComponent(); } - public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; + public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; private void exit_Click(object sender, RoutedEventArgs e) { diff --git a/WpfApp1/InfoUtilisateur.xaml.cs b/WpfApp1/InfoUtilisateur.xaml.cs index 0161132..1a89576 100644 --- a/WpfApp1/InfoUtilisateur.xaml.cs +++ b/WpfApp1/InfoUtilisateur.xaml.cs @@ -27,7 +27,7 @@ namespace WpfApp1 InitializeComponent(); } - public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; + public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; private Personne _pers; public Personne pers diff --git a/WpfApp1/MainWindow.xaml.cs b/WpfApp1/MainWindow.xaml.cs index 782240b..f689103 100644 --- a/WpfApp1/MainWindow.xaml.cs +++ b/WpfApp1/MainWindow.xaml.cs @@ -28,7 +28,7 @@ namespace WpfApp1 public partial class MainWindow : Window { public Manager Mgr => (Application.Current as App).LeManager; - public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; + public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; Nullable zonePage{ get; set; } diff --git a/WpfApp1/Persistance/ficReq b/WpfApp1/Persistance/ficReq new file mode 100644 index 0000000..9203cf3 --- /dev/null +++ b/WpfApp1/Persistance/ficReq @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReqAdd b/WpfApp1/Persistance/ficReqAdd new file mode 100644 index 0000000..9203cf3 --- /dev/null +++ b/WpfApp1/Persistance/ficReqAdd @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/WpfApp1/Persistance/ficReqEdit b/WpfApp1/Persistance/ficReqEdit new file mode 100644 index 0000000..9203cf3 --- /dev/null +++ b/WpfApp1/Persistance/ficReqEdit @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/WpfApp1/Persistance/ficUsers b/WpfApp1/Persistance/ficUsers new file mode 100644 index 0000000..40e34f9 --- /dev/null +++ b/WpfApp1/Persistance/ficUsers @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/WpfApp1/SeConnecter.xaml.cs b/WpfApp1/SeConnecter.xaml.cs index 9d36e95..5fa0f3b 100644 --- a/WpfApp1/SeConnecter.xaml.cs +++ b/WpfApp1/SeConnecter.xaml.cs @@ -22,7 +22,7 @@ namespace WpfApp1 public partial class SeConnecter : Window { - public ManagerUsers Mgr => (Application.Current as App).LeManagerUser; + public ManagerUsers Mgr => (Application.Current as App).LeManagerUsers; public SeConnecter() { InitializeComponent(); diff --git a/WpfApp1/UserControlEdit.xaml.cs b/WpfApp1/UserControlEdit.xaml.cs index 5008882..ccc63db 100644 --- a/WpfApp1/UserControlEdit.xaml.cs +++ b/WpfApp1/UserControlEdit.xaml.cs @@ -32,7 +32,7 @@ namespace WpfApp1 } public Manager Manager => (Application.Current as App).LeManager; - public ManagerUsers ManagerUser => (Application.Current as App).LeManagerUser; + public ManagerUsers ManagerUser => (Application.Current as App).LeManagerUsers; private Requin _requin; public Requin requin diff --git a/WpfApp1/ValiderSubmit.xaml b/WpfApp1/ValiderSubmit.xaml index b73933e..8caa006 100644 --- a/WpfApp1/ValiderSubmit.xaml +++ b/WpfApp1/ValiderSubmit.xaml @@ -8,7 +8,7 @@ Title="ValiderSubmit" Height="450" Width="800"> - + @@ -38,7 +38,13 @@ - + + + + + + + diff --git a/WpfApp1/WpfApp1.csproj b/WpfApp1/WpfApp1.csproj index 45d9a05..b09de9f 100644 --- a/WpfApp1/WpfApp1.csproj +++ b/WpfApp1/WpfApp1.csproj @@ -131,8 +131,4 @@ - - - - diff --git a/WpfApp1/userControlAcceuil.xaml.cs b/WpfApp1/userControlAcceuil.xaml.cs index 5072521..9ad785c 100644 --- a/WpfApp1/userControlAcceuil.xaml.cs +++ b/WpfApp1/userControlAcceuil.xaml.cs @@ -22,7 +22,7 @@ namespace WpfApp1 /// public partial class userControlAcceuil : UserControl { - public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; + public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; public userControlAcceuil() { diff --git a/WpfApp1/userControlDescription.xaml.cs b/WpfApp1/userControlDescription.xaml.cs index 75ddf1b..7fe8635 100644 --- a/WpfApp1/userControlDescription.xaml.cs +++ b/WpfApp1/userControlDescription.xaml.cs @@ -26,7 +26,7 @@ namespace WpfApp1 { InitializeComponent(); } - public ManagerUsers MgrUser => (Application.Current as App).LeManagerUser; + public ManagerUsers MgrUser => (Application.Current as App).LeManagerUsers; public Manager Mgr => (Application.Current as App).LeManager; private Requin _requin;