diff --git a/Sources/Persistance/IMonsterDataManager.cs b/Sources/Persistance/IMonsterDataManager.cs index 714da21..54903f7 100644 --- a/Sources/Persistance/IMonsterDataManager.cs +++ b/Sources/Persistance/IMonsterDataManager.cs @@ -1,6 +1,7 @@ using Model; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -10,6 +11,6 @@ namespace Persistance public interface IMonsterDataManager { public void saveMonsters(List monstres); - public List loadMonsters(); + public ObservableCollection loadMonsters(); } } \ No newline at end of file diff --git a/Sources/Persistance/LoaderJson.cs b/Sources/Persistance/LoaderJson.cs index 4cc3bbf..8b3f262 100644 --- a/Sources/Persistance/LoaderJson.cs +++ b/Sources/Persistance/LoaderJson.cs @@ -1,6 +1,7 @@ using Model; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Runtime.Serialization.Json; using System.Text; @@ -14,12 +15,12 @@ namespace Persistance DataContractJsonSerializer jsonUserSerializer = new DataContractJsonSerializer(typeof(List)); DataContractJsonSerializer jsonMonsterSerializer = new DataContractJsonSerializer(typeof(List)); MemoryStream memoryStream = new MemoryStream(); - List IMonsterDataManager.loadMonsters() + ObservableCollection IMonsterDataManager.loadMonsters() { - List? monstre2; + ObservableCollection? monstre2; using (FileStream s2 = File.OpenRead("monsters.json")) { - monstre2 = jsonMonsterSerializer.ReadObject(s2) as List; + monstre2 = jsonMonsterSerializer.ReadObject(s2) as ObservableCollection; } return monstre2; //throw new NotImplementedException(); diff --git a/Sources/Persistance/LoaderStub.cs b/Sources/Persistance/LoaderStub.cs index d4a5639..c6643d5 100644 --- a/Sources/Persistance/LoaderStub.cs +++ b/Sources/Persistance/LoaderStub.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; +using System.Collections.ObjectModel; namespace Persistance { @@ -32,9 +33,9 @@ namespace Persistance return lu; } - public List loadMonsters() ///SAME + public ObservableCollection loadMonsters() ///SAME { - List lm = new List(); + ObservableCollection lm = new ObservableCollection(); User user = new User("ddd", "ddd", "ddd", "ddd"); Monstre monstre = new Monstre(1, "monstre", "dangereux", "je suis gentil tkt", new List { }, new List { }, new List { }); Conseil conseil = new Conseil(user, "Voili voilou", monstre); diff --git a/Sources/Persistance/LoaderXML.cs b/Sources/Persistance/LoaderXML.cs index c380c4c..3cc043c 100644 --- a/Sources/Persistance/LoaderXML.cs +++ b/Sources/Persistance/LoaderXML.cs @@ -12,6 +12,7 @@ using static System.Net.Mime.MediaTypeNames; using System.Runtime.CompilerServices; using System.Dynamic; using System.Xml.Linq; +using Microsoft.VisualBasic; namespace Persistance {/// @@ -22,16 +23,18 @@ namespace Persistance /// public class LoaderXml : IUserDataManager, IMonsterDataManager { - static string path = "../../Utilisateurs"; + static string Dirpath = "lol"/*FileSystem.Current.AppDataDirectory*/; static string fichierUserXML = "users.xml"; - static string fichierMonstreXML = "monsters.xml"; - + static string fichierMonsterXML = "monsters.xml"; + static string fullPathUser = Path.Combine(Dirpath, fichierUserXML); + static string fullPathMonster = Path.Combine(Dirpath, fichierMonsterXML); + void IMonsterDataManager.saveMonsters(List monstres) { - Directory.SetCurrentDirectory(path); // Setup le chemin d'accès + Directory.SetCurrentDirectory(Dirpath); // Setup le chemin d'accès var serialiserXML = new DataContractSerializer(typeof(List)); XmlWriterSettings xmlSettings = new XmlWriterSettings() { Indent = true }; // Pour avoir le format xml dans le fichier ( indentation etc... ) - using (TextWriter tw = File.CreateText(Path.Combine(fichierMonstreXML))) + using (TextWriter tw = File.CreateText(Path.Combine(fichierMonsterXML))) { using (XmlWriter writer = XmlWriter.Create(tw, xmlSettings)) { @@ -39,28 +42,28 @@ namespace Persistance } } } - public List loadMonsters() + public ObservableCollection loadMonsters() { - Directory.SetCurrentDirectory(path); - var serialiserXML = new DataContractSerializer(typeof(List)); - List? monsters; + Directory.SetCurrentDirectory(Dirpath); + var serialiserXML = new DataContractSerializer(typeof(ObservableCollection)); + ObservableCollection? monsters; try { - using (Stream s = File.OpenRead(fichierMonstreXML)) + using (Stream s = File.OpenRead(fichierMonsterXML)) { - monsters = serialiserXML.ReadObject(s) as List; + monsters = serialiserXML.ReadObject(s) as ObservableCollection; } } catch (FileNotFoundException e) { throw new FileNotFoundException("The XML file used to load a list of monsters is missing.", e); } if (monsters != null) return monsters; // ça va faire un code smells - return new List { }; + return new ObservableCollection { }; } // Serialisation / Deserialisation de Users void IUserDataManager.saveUsers(List users)// Serialise correctement juste voir comment l'appelé en fonction de IUserDataManager { - Directory.SetCurrentDirectory(path); + Directory.SetCurrentDirectory(Dirpath); var serialiserXML = new DataContractSerializer(typeof(List)); XmlWriterSettings xmlSettings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(fichierUserXML)) @@ -73,7 +76,7 @@ namespace Persistance } public List loadUsers() { - Directory.SetCurrentDirectory(path); + Directory.SetCurrentDirectory(Dirpath); var serialiserXML = new DataContractSerializer(typeof(List)); List? users; using (Stream s = File.OpenRead(fichierUserXML)) diff --git a/Sources/Persistance/MonsterManager.cs b/Sources/Persistance/MonsterManager.cs index e9d1a11..7aa6dd3 100644 --- a/Sources/Persistance/MonsterManager.cs +++ b/Sources/Persistance/MonsterManager.cs @@ -1,6 +1,7 @@ using Model; using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -11,8 +12,8 @@ namespace Persistance { public IMonsterDataManager Pers { get; set; } - private List monsters = null!; - public List ListMonsters + private ObservableCollection monsters = null!; + public ObservableCollection ListMonsters { get { @@ -28,7 +29,7 @@ namespace Persistance Pers.saveMonsters(monstres); } - List IMonsterDataManager.loadMonsters() + ObservableCollection IMonsterDataManager.loadMonsters() { return Pers.loadMonsters(); } diff --git a/Sources/Persistance/UserManager.cs b/Sources/Persistance/UserManager.cs index 6bd034c..fa74e3b 100644 --- a/Sources/Persistance/UserManager.cs +++ b/Sources/Persistance/UserManager.cs @@ -92,7 +92,8 @@ namespace Persistance public UserManager(IUserDataManager dataMngr) { Pers = dataMngr; - ListUsers = new LoaderStub().loadUsers(); //CHOIX ICI DE LA METHODE DE CHARGEMENT INITIAL DES UTILISATEURS + ListUsers = new LoaderStub().loadUsers(); + //ListUsers = dataMngr.loadUsers(); //CHOIX ICI DE LA METHODE DE CHARGEMENT INITIAL DES UTILISATEURS } } } diff --git a/Sources/Vues/App.xaml.cs b/Sources/Vues/App.xaml.cs index 4e38378..7532517 100644 --- a/Sources/Vues/App.xaml.cs +++ b/Sources/Vues/App.xaml.cs @@ -6,7 +6,7 @@ namespace Vues { public partial class App : Application { - public MonsterManager monsterManager { get; private set; } = new MonsterManager(new LoaderStub()); + public MonsterManager monsterManager { get; private set; } = new MonsterManager(new LoaderXml()); public UserManager userManager { get; private set; } = new UserManager(new LoaderXml()); private User user; diff --git a/Sources/Vues/SearchMob.xaml b/Sources/Vues/SearchMob.xaml index fd06f24..dfac129 100644 --- a/Sources/Vues/SearchMob.xaml +++ b/Sources/Vues/SearchMob.xaml @@ -106,33 +106,28 @@ - - - - - - - - - - - - - -