From 771dfebd455ecbc2d933450b081c14049561ab24 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Wed, 10 May 2023 17:19:44 +0200 Subject: [PATCH] Update DataContractPers --- src/Banquale/Banquale/App.xaml.cs | 4 +- src/Banquale/Banquale/Banquale.csproj | 1 + .../DataContractPers.cs | 58 ++++++++++++++----- src/Banquale/Banquale/Model/Manager.cs | 7 ++- 4 files changed, 53 insertions(+), 17 deletions(-) diff --git a/src/Banquale/Banquale/App.xaml.cs b/src/Banquale/Banquale/App.xaml.cs index b23e2bb..8cadac2 100644 --- a/src/Banquale/Banquale/App.xaml.cs +++ b/src/Banquale/Banquale/App.xaml.cs @@ -13,8 +13,8 @@ public partial class App : Application { MyManager.ChargeDonnee(); - //MyManager.Persistance = new DataContractPersistance.DataContractPers(); - //MyManager.SauvegardeDonnee(); + MyManager.Persistance = new DataContractPersistance.DataContractPers(); + MyManager.SauvegardeDonnee(); InitializeComponent(); diff --git a/src/Banquale/Banquale/Banquale.csproj b/src/Banquale/Banquale/Banquale.csproj index 8939ab5..3f03349 100644 --- a/src/Banquale/Banquale/Banquale.csproj +++ b/src/Banquale/Banquale/Banquale.csproj @@ -75,6 +75,7 @@ + diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs index a978b1c..1f1214a 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs @@ -1,22 +1,54 @@ -using System; - +using Banquale.Model; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Runtime.Serialization; +using System.Xml; namespace Banquale.DataContractPersistance { - public class DataContractPers + public class DataContractPers : IPersistanceManager { - //public DataContractPers() - //{ - // public string Filename { get; set; } = "PATH"; + public string FileName { get; set; } = "nomFichier.xml"; + + public string FilePath2 { get; set; } = "..\\Persistances"; + public string FilePath { get; set; } = "C:\\Users\\louve\\depot\\Banquale\\src\\Banquale\\Persistances"; + + + + public (List, List) ChargeDonnee() + { + var serializer = new DataContractSerializer(typeof(List)); + List list; + + using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName))) + { + list = serializer.ReadObject(s) as List; + } - // public string FilePath { get; set; } = "PATH"; + return (list, new List()); + } - //} + public void SauvegardeDonnee(List c, List t) + { + var serializer = new DataContractSerializer (typeof(List)); + if(!Directory.Exists(FilePath)) + { + Debug.WriteLine("Directory non crée"); + Debug.WriteLine(Directory.GetDirectoryRoot(FilePath)); + Debug.WriteLine(FilePath); + Directory.CreateDirectory(FilePath); + } - //public (List, List) ChargeDonnee() - //{ - // var serializer = new DataContractSerializer(typeof(Client)); - //} - } + XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; + using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName))) + { + using (XmlWriter writer = XmlWriter.Create(tw, settings)) + { + serializer.WriteObject(writer, t); + } + } + } + } } diff --git a/src/Banquale/Banquale/Model/Manager.cs b/src/Banquale/Banquale/Model/Manager.cs index c45cbbe..d7739f0 100644 --- a/src/Banquale/Banquale/Model/Manager.cs +++ b/src/Banquale/Banquale/Model/Manager.cs @@ -1,12 +1,15 @@ using System; +using System.Runtime.Serialization; namespace Banquale.Model { + [DataContract] public class Manager { + [DataMember] public List ListeClients { get; private set; } - + [DataMember] public List ListeTransactions { get; private set; } public IPersistanceManager Persistance { get; set; } @@ -35,7 +38,7 @@ namespace Banquale.Model return ListeClients[place]; } - public void sauvegardeDonnee() + public void SauvegardeDonnee() { Persistance.SauvegardeDonnee(ListeClients, ListeTransactions); }