From 506afb33673fc1b74c87f4fba750049d72dc655c Mon Sep 17 00:00:00 2001 From: anperederi Date: Wed, 10 May 2023 17:44:28 +0200 Subject: [PATCH] aad DataContractPersistence --- src/Banquale/Banquale/App.xaml.cs | 11 ++-- .../DataContractPers.cs | 50 ++++++++++++++----- src/Banquale/Banquale/Model/Client.cs | 4 +- .../Banquale/Model/IPersistanceManager.cs | 2 +- src/Banquale/Banquale/Model/Manager.cs | 2 +- 5 files changed, 48 insertions(+), 21 deletions(-) diff --git a/src/Banquale/Banquale/App.xaml.cs b/src/Banquale/Banquale/App.xaml.cs index b23e2bb..b8ea784 100644 --- a/src/Banquale/Banquale/App.xaml.cs +++ b/src/Banquale/Banquale/App.xaml.cs @@ -1,22 +1,23 @@ using Banquale.Model; using Banquale.Stub; +using Banquale.DataContractPersistance; namespace Banquale; public partial class App : Application { - public Manager MyManager { get; private set; } = new Manager(new Stub.Stub()/*DataContractPersistance.DataContractPers()*/); + public Manager MyManager { get; private set; } = new Manager(new Stub.Stub()); public App() { - MyManager.ChargeDonnee(); - //MyManager.Persistance = new DataContractPersistance.DataContractPers(); - //MyManager.SauvegardeDonnee(); + MyManager.ChargeDonnee(); + MyManager.Persistance = new DataContractPersistance.DataContractPers(); + MyManager.SauvegardeDonnee(); - InitializeComponent(); + InitializeComponent(); MainPage = new AppShell(); diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs index a978b1c..83ed1e4 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs @@ -1,22 +1,48 @@ using System; - +using System.Diagnostics; +using System.Runtime.Serialization; +using Banquale.Model; namespace Banquale.DataContractPersistance { - public class DataContractPers + public class DataContractPers : IPersistanceManager { - //public DataContractPers() - //{ - // public string Filename { get; set; } = "PATH"; - // public string FilePath { get; set; } = "PATH"; + public string FileName { get; set; } = "ClientAndTransactionsList.xml"; + + public string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//XML1_folder")/*"/Users/Perederii/SAE/Banquale/src/Banquale/Banquale/XML_folder"*/; + + + public (List, List) ChargeDonnee() + { + var serializer = new DataContractSerializer(typeof(List)); + + List ListClients; + + using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName))) + { + ListClients = serializer.ReadObject(s) as List; + } + return (ListClients, new List()); + } + + public void SauvegardeDonnee(List c, List t) + { + var serializer = new DataContractSerializer(typeof(List)); - //} + if(!Directory.Exists(FilePath)) + { + Debug.WriteLine("Directory crée à l'instant"); + Debug.WriteLine(Directory.GetDirectoryRoot); + Debug.WriteLine(FilePath); + Directory.CreateDirectory(FilePath); + } - //public (List, List) ChargeDonnee() - //{ - // var serializer = new DataContractSerializer(typeof(Client)); - //} - } + using (Stream s = File.Create(Path.Combine(FilePath, FileName))) + { + serializer.WriteObject(s, t); + } + } + } } diff --git a/src/Banquale/Banquale/Model/Client.cs b/src/Banquale/Banquale/Model/Client.cs index 87c690f..52a7ced 100644 --- a/src/Banquale/Banquale/Model/Client.cs +++ b/src/Banquale/Banquale/Model/Client.cs @@ -7,10 +7,10 @@ using System.Threading.Tasks; namespace Banquale.Model { - + //[DataFrameworks] public class Client: Personne { - + //[DataMember] public List ListeComptes { get; private set; } diff --git a/src/Banquale/Banquale/Model/IPersistanceManager.cs b/src/Banquale/Banquale/Model/IPersistanceManager.cs index 5415260..9ebe4c5 100644 --- a/src/Banquale/Banquale/Model/IPersistanceManager.cs +++ b/src/Banquale/Banquale/Model/IPersistanceManager.cs @@ -8,7 +8,7 @@ namespace Banquale.Model { public interface IPersistanceManager { - (List, List) ChargeDonnee(); + public (List, List) ChargeDonnee(); void SauvegardeDonnee(List c, List t); } diff --git a/src/Banquale/Banquale/Model/Manager.cs b/src/Banquale/Banquale/Model/Manager.cs index c45cbbe..a38d1e3 100644 --- a/src/Banquale/Banquale/Model/Manager.cs +++ b/src/Banquale/Banquale/Model/Manager.cs @@ -35,7 +35,7 @@ namespace Banquale.Model return ListeClients[place]; } - public void sauvegardeDonnee() + public void SauvegardeDonnee() { Persistance.SauvegardeDonnee(ListeClients, ListeTransactions); }