You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mastermind/Sources/CoreLibrary/Persistance/Persistance.cs

76 lines
2.5 KiB

using CoreLibrary.Joueurs;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Text.Json;
namespace CoreLibrary.Persistance
{
public class Persistance : IPersistance
{
public List<Joueur> joueurs = new List<Joueur>();
public List<Partie> parties = new List<Partie>();
public string ancienRepertoire = Directory.GetCurrentDirectory();
public List<Joueur> ChargerJoueurs()
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(List<Joueur>));
using (FileStream s = File.OpenRead("joueurs.json"))
{
joueurs = jsonSerializer.ReadObject(s) as List<Joueur>;
}
return joueurs;
}
public List<Partie> ChargerParties()
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(List<Partie>));
using (FileStream s = File.OpenRead("parties.json"))
{
parties = jsonSerializer.ReadObject(s) as List<Partie>;
}
return parties;
}
public void EnregistrerJoueurs(List<Joueur> joueurs)
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(List<Joueur>));
using (FileStream s = File.Create("joueurs.json"))
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(
s,
Encoding.UTF8,
false,
true))
{
jsonSerializer.WriteObject(writer, joueurs);
}
}
Directory.SetCurrentDirectory(ancienRepertoire);
}
public void EnregistrerParties(List<Partie> parties)
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(List<Partie>));
using (FileStream s = File.Create("parties.json"))
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(
s,
Encoding.UTF8,
false,
true))
{
jsonSerializer.WriteObject(writer, parties);
}
}
Directory.SetCurrentDirectory(ancienRepertoire);
}
}
}