diff --git a/Persistance/DataContractPersistance.cs b/Persistance/DataContractPersistance.cs index 8b5d786..9a86246 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,10 +11,48 @@ namespace Persistance { public class DataContractPersistance : IPersistanceManager { + public DataContractSerializer Serializer { get; set; } + = new DataContractSerializer(typeof(List)); + + string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//..//Persistance"); + string FileName { get; set; } + + string Filepers => Path.Combine(FilePath, FileName); + + List requins = new List(); + + public List LoadRequins() { - throw new NotImplementedException(); + if (File.Exists(Filepers)) + { + throw new FileNotFoundException("The persisance file Persisitance does not exist"); + } + + using (Stream stream = File.OpenRead(Filepers)) + { + requins = Serializer.ReadObject(stream) as List; + } + + return requins; } + public void SaveRequins(List reqs) + { + if (!Directory.Exists(FilePath)) + { + Directory.CreateDirectory(FilePath); + } + + using (Stream stream = File.Create(Filepers)) + { + Serializer.WriteObject(stream, requins); + } + } + + + + + public List LoadRequinsAdd() { @@ -29,10 +69,6 @@ namespace Persistance throw new NotImplementedException(); } - public void SaveRequins(List reqs) - { - throw new NotImplementedException(); - } public void SaveRequinsAdd(List reqs) { 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/WpfApp1.csproj b/WpfApp1/WpfApp1.csproj index b09de9f..45d9a05 100644 --- a/WpfApp1/WpfApp1.csproj +++ b/WpfApp1/WpfApp1.csproj @@ -131,4 +131,8 @@ + + + +