From c4d8423eff1948006482309ce42149d076011531 Mon Sep 17 00:00:00 2001 From: majean5 Date: Wed, 1 Jun 2022 17:32:29 +0200 Subject: [PATCH] =?UTF-8?q?d=C3=A9but=20DataContract=20du=20pauvre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Persistance/DataContractPersistance.cs | 46 +++++++++++++++++++++++--- WpfApp1/App.xaml.cs | 1 + WpfApp1/WpfApp1.csproj | 4 +++ 3 files changed, 46 insertions(+), 5 deletions(-) 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 @@ + + + +