|
|
|
@ -1,5 +1,4 @@
|
|
|
|
|
using CoreLibrary.Joueurs;
|
|
|
|
|
using System.Runtime.Serialization.Json;
|
|
|
|
|
using System.Runtime.Serialization.Json;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Xml;
|
|
|
|
|
|
|
|
|
@ -8,31 +7,25 @@ namespace CoreLibrary.Persistance
|
|
|
|
|
public class PersistanceJSON : IPersistance
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public T[] Charger<T>()
|
|
|
|
|
public T[] Charger<T>() where T : IEstPersistant
|
|
|
|
|
{
|
|
|
|
|
string dossierAvant = Directory.GetCurrentDirectory();
|
|
|
|
|
|
|
|
|
|
string dossier = Path.Combine(dossierAvant, "../../../..");
|
|
|
|
|
string fichier = $"{typeof(T).Name}.json";
|
|
|
|
|
string ancienDossier = Directory.GetCurrentDirectory();
|
|
|
|
|
|
|
|
|
|
Directory.SetCurrentDirectory(Path.Combine(ancienDossier, "../../../../"));
|
|
|
|
|
Console.WriteLine(Directory.GetCurrentDirectory());
|
|
|
|
|
if(!Directory.Exists("Fichiers"))
|
|
|
|
|
{
|
|
|
|
|
Directory.SetCurrentDirectory(ancienDossier);
|
|
|
|
|
|
|
|
|
|
bool c = Directory.Exists(dossier);
|
|
|
|
|
|
|
|
|
|
if (!c)
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "Fichiers"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Directory.SetCurrentDirectory(dossier);
|
|
|
|
|
|
|
|
|
|
if (!File.Exists(fichier))
|
|
|
|
|
{
|
|
|
|
|
Directory.SetCurrentDirectory(ancienDossier);
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(IEnumerable<T>));
|
|
|
|
|
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[]));
|
|
|
|
|
T[] elements;
|
|
|
|
|
|
|
|
|
|
using (FileStream s = File.OpenRead(fichier))
|
|
|
|
@ -40,25 +33,20 @@ namespace CoreLibrary.Persistance
|
|
|
|
|
elements = jsonSerializer.ReadObject(s) as T[];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Directory.SetCurrentDirectory(ancienDossier);
|
|
|
|
|
return elements;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Enregistrer<T>(T[] elements)
|
|
|
|
|
public void Enregistrer<T>(T[] elements) where T : IEstPersistant
|
|
|
|
|
{
|
|
|
|
|
string dossier = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Mastermind");
|
|
|
|
|
string fichier = $"{typeof(T).Name}.json";
|
|
|
|
|
string ancienDossier = Directory.GetCurrentDirectory();
|
|
|
|
|
|
|
|
|
|
Directory.SetCurrentDirectory(Path.Combine(ancienDossier, "../../../../"));
|
|
|
|
|
if (!Directory.Exists(dossier))
|
|
|
|
|
Directory.CreateDirectory(dossier);
|
|
|
|
|
|
|
|
|
|
if (!Directory.Exists("Fichiers"))
|
|
|
|
|
{
|
|
|
|
|
Directory.CreateDirectory("Fichiers");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "Fichiers"));
|
|
|
|
|
Directory.SetCurrentDirectory(dossier);
|
|
|
|
|
|
|
|
|
|
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(IEnumerable<T>));
|
|
|
|
|
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[]));
|
|
|
|
|
|
|
|
|
|
using(FileStream s = File.Create(fichier))
|
|
|
|
|
{
|
|
|
|
@ -71,8 +59,6 @@ namespace CoreLibrary.Persistance
|
|
|
|
|
jsonSerializer.WriteObject(writer, elements);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Directory.SetCurrentDirectory(ancienDossier);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|