Ajout persistance Json + Test de la persistance + choix persistance Binaire

pull/18/head
Leana BESSON 2 years ago
parent efbdf658c9
commit b1b9f49296

@ -37,9 +37,9 @@ namespace Persistance
Theque? theque = new Theque();
if (File.Exists(txtFile))
{
using (FileStream stream2 = File.OpenRead(txtFile))
using (FileStream stream = File.OpenRead(txtFile))
{
using (XmlDictionaryReader xmlDicoReader = XmlDictionaryReader.CreateBinaryReader(stream2, XmlDictionaryReaderQuotas.Max))
using (XmlDictionaryReader xmlDicoReader = XmlDictionaryReader.CreateBinaryReader(stream, XmlDictionaryReaderQuotas.Max))
{
Theque? thequeOpt = serializer.ReadObject(xmlDicoReader) as Theque;
if (thequeOpt != null)

@ -0,0 +1,59 @@
using Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Xml;
namespace Persistance
{
public class DataSerializerJson
{
public static void Serializer(string path, Theque theque)
{
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), path));
string jsonFile = "theque.json";
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Theque));
using (FileStream stream = File.Create(jsonFile))
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(stream, System.Text.Encoding.UTF8, false, true))
{
jsonSerializer.WriteObject(writer, theque);
}
}
}
public static Theque Deserializer(string path)
{
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), path));
string jsonFile = "theque.json";
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Theque));
Theque? theque = new Theque();
if (File.Exists(jsonFile))
{
using (Stream stream = File.OpenRead(jsonFile))
{
Theque? thequeOpt = jsonSerializer.ReadObject(stream) as Theque;
if (thequeOpt != null)
theque = thequeOpt;
else
Console.WriteLine("Theque est null");
}
}
else
{
theque = Stub.LoadTheque();
}
return theque;
}
}
}

@ -39,9 +39,9 @@ namespace Persistance
Theque theque = new Theque();
if(File.Exists(xmlFile))
{
using (Stream s = File.OpenRead(xmlFile))
using (Stream stream = File.OpenRead(xmlFile))
{
Theque? thequeOpt = serializer.ReadObject(s) as Theque;
Theque? thequeOpt = serializer.ReadObject(stream) as Theque;
if (thequeOpt != null)
theque = thequeOpt;
else

@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Persistance
{
internal class DateSerializerJson
{
}
}

@ -24,7 +24,7 @@ public partial class New_DetailAnimal : ContentPage
public async void Button_OnClick(object sender, EventArgs e)
{
(App.Current as App).Theque.SupprimerAnimal((App.Current as App).AnimalSelectionner);
DataSerializerBinary.Serializer((App.Current as App).SerializationPath, (App.Current as App).Theque);
DataSerializerJson.Serializer((App.Current as App).SerializationPath, (App.Current as App).Theque);
await Shell.Current.GoToAsync("//Animaux");
}
@ -32,7 +32,7 @@ public partial class New_DetailAnimal : ContentPage
{
if ((App.Current as App).AnimalSelectionner.NomIsValid == true)
{
DataSerializerBinary.Serializer((App.Current as App).SerializationPath, (App.Current as App).Theque);
DataSerializerJson.Serializer((App.Current as App).SerializationPath, (App.Current as App).Theque);
await Shell.Current.GoToAsync("//Animaux");
}
}

Loading…
Cancel
Save