diff --git a/src/Banquale/Banquale/App.xaml.cs b/src/Banquale/Banquale/App.xaml.cs index 011c988..5aee24c 100644 --- a/src/Banquale/Banquale/App.xaml.cs +++ b/src/Banquale/Banquale/App.xaml.cs @@ -7,7 +7,7 @@ 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() /*DataContractPersistance.DataContractPersXML()*/); @@ -15,7 +15,7 @@ public partial class App : Application { MyManager.DataLoad(); - MyManager.Persistence = new DataContractPersistance.DataContractPers(); + MyManager.Persistence = new DataContractPersistance.DataContractPersXML(); MyManager.DataSave(); InitializeComponent(); diff --git a/src/Banquale/Banquale/Banquale.csproj b/src/Banquale/Banquale/Banquale.csproj index cc45e25..44d300a 100644 --- a/src/Banquale/Banquale/Banquale.csproj +++ b/src/Banquale/Banquale/Banquale.csproj @@ -70,7 +70,6 @@ - diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs new file mode 100644 index 0000000..85df3fb --- /dev/null +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPersJSON.cs @@ -0,0 +1,57 @@ +using Model; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.Serialization.Json; +using System.Text; +using System.Threading.Tasks; + + + +namespace Banquale.DataContractPersistance +{ + public class DataContractPersJSON : IPersistenceManager + { + + public string FilePath { get; set; } = FileSystem.Current.AppDataDirectory; + public string FileName { get; set; } = "DataSave.json"; + + + public (List, Consultant) DataLoad() + { + DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(DataToPersist)); + + DataToPersist data; + + using (FileStream stream2 = File.OpenRead(Path.Combine(FilePath, FileName))) + { + data = jsonSerializer.ReadObject(stream2) as DataToPersist; + } + + return (data.customer, data.consultant); + + } + + public void DataSave(List cu, Consultant co) + { + + DataToPersist data = new DataToPersist(); + data.customer = cu; + data.consultant = co; + + DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(DataToPersist)); + using (FileStream stream = File.Create(Path.Combine(FilePath, FileName))) + { + using (var writer = JsonReaderWriterFactory.CreateJsonWriter( + stream, + System.Text.Encoding.UTF8, + false, + true))//<- this boolean says that we sant indentation + { + jsonSerializer.WriteObject(writer, data); + } + } + } + } +} diff --git a/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs b/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs similarity index 92% rename from src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs rename to src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs index 70485c2..893ee04 100644 --- a/src/Banquale/Banquale/DataContractPersistance/DataContractPers.cs +++ b/src/Banquale/Banquale/DataContractPersistance/DataContractPersXML.cs @@ -8,7 +8,7 @@ using System.Xml; namespace Banquale.DataContractPersistance { - public class DataContractPers : IPersistenceManager + public class DataContractPersXML : IPersistenceManager { //public string FilePath { get; set; } = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/datbase.xml"; @@ -51,7 +51,8 @@ namespace Banquale.DataContractPersistance public void DataSave(List cu, Consultant co) { - var serializer = new DataContractSerializer(typeof(DataToPersist)); + var serializer = new DataContractSerializer(typeof(DataToPersist), new DataContractSerializerSettings() { PreserveObjectReferences = true }); + // La deuxième partie sert à faire des références, cela sert à ne pas duppliquer l'écriture de certains attributs if (!Directory.Exists(FilePath)) { diff --git a/src/Banquale/Banquale/Stub/Stub.cs b/src/Banquale/Banquale/Stub/Stub.cs index a401216..3749c51 100644 --- a/src/Banquale/Banquale/Stub/Stub.cs +++ b/src/Banquale/Banquale/Stub/Stub.cs @@ -20,7 +20,7 @@ namespace Banquale.Stub Customer Customer2 = new Customer("Francis", "Begore", "Halo"); Customer Customer3 = new Customer("Michel", "Boudout", "Hola"); - Account Account1 = new Account(999, "Tatouille", "FR76 9161 9581 6296 8415 2361 004"); + Account Account1 = new Account(999, "Tatouille", "FR7691619581629684152361004"); Account Account2 = new Account(9510, "Despoints", "FR7647858569691441525263003"); Account Account3 = new Account(3519, "Perotte", "FR7663522541416969585847002"); diff --git a/src/Banquale/Banquale/Views/BalancePage.xaml b/src/Banquale/Banquale/Views/BalancePage.xaml index 9915d12..0ef8203 100644 --- a/src/Banquale/Banquale/Views/BalancePage.xaml +++ b/src/Banquale/Banquale/Views/BalancePage.xaml @@ -69,12 +69,13 @@ Grid.Row="1" HeightRequest="1"/> -