using Model.Stub; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Xml; namespace Model.Serializer { public class XML_Serializer : IDataManager { public string Chemin { get; set; } public XML_Serializer() { StubManager stubManager = new StubManager(); Chemin = Directory.GetCurrentDirectory(); if (File.Exists(Path.Combine(Chemin, "./personnage.xml"))==false) { SetPersonnage(stubManager.GetPersonnages().ToList()); } if (File.Exists(Path.Combine(Chemin, "./bateau.xml")) == false) { SetBateau(stubManager.GetBateaux().ToList()); } if (File.Exists(Path.Combine(Chemin, "./fruitdudemon.xml")) == false) { SetFDD(stubManager.GetFruits().ToList()); } if (File.Exists(Path.Combine(Chemin, "./bestiaire.xml")) == false) { SetBestiaire(stubManager.GetBestiaires().ToList()); } if (File.Exists(Path.Combine(Chemin, "./equipage.xml")) == false) { SetEquipage(stubManager.GetEquipages().ToList()); } if (File.Exists(Path.Combine(Chemin, "./ile.xml")) == false) { SetIle(stubManager.GetIles().ToList()); } } public XML_Serializer(string path) { Chemin= path; StubManager stubManager = new StubManager(); if (File.Exists(Path.Combine(Chemin, "./personnage.xml")) == false) { SetPersonnage(stubManager.GetPersonnages().ToList()); } if (File.Exists(Path.Combine(Chemin, "./bateau.xml")) == false) { SetBateau(stubManager.GetBateaux().ToList()); } if (File.Exists(Path.Combine(Chemin, "./fruitdudemon.xml")) == false) { SetFDD(stubManager.GetFruits().ToList()); } if (File.Exists(Path.Combine(Chemin, "./bestiaire.xml")) == false) { SetBestiaire(stubManager.GetBestiaires().ToList()); } if (File.Exists(Path.Combine(Chemin, "./equipage.xml")) == false) { SetEquipage(stubManager.GetEquipages().ToList()); } if (File.Exists(Path.Combine(Chemin, "./ile.xml")) == false) { SetIle(stubManager.GetIles().ToList()); } } public void SetPersonnage(List listePerso) { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "personnage.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { using (XmlWriter writer = XmlWriter.Create(tw, settings)) { serializer.WriteObject(writer, listePerso); } } } public void SetFDD(List listeFDD) { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "fruitdudemon.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { using (XmlWriter writer = XmlWriter.Create(tw, settings)) { serializer.WriteObject(writer, listeFDD); } } } public void SetBestiaire(List listeBest) { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bestiaire.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { using (XmlWriter writer = XmlWriter.Create(tw, settings)) { serializer.WriteObject(writer, listeBest); } } } public void SetEquipage(List listeEquip) { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "equipage.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { using (XmlWriter writer = XmlWriter.Create(tw, settings)) { serializer.WriteObject(writer, listeEquip); } } } public void SetIle(List listeIle) { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "ile.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { using (XmlWriter writer = XmlWriter.Create(tw, settings)) { serializer.WriteObject(writer, listeIle); } } } public void SetBateau(List listeBateau) { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bateau.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { using (XmlWriter writer = XmlWriter.Create(tw, settings)) { serializer.WriteObject(writer, listeBateau); } } } public IEnumerable GetBateaux() { List? listeBateau = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bateau.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { listeBateau = serializer.ReadObject(s) as List; } return listeBateau; } public IEnumerable GetBestiaires() { List? listeBest = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bestiaire.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { listeBest = serializer.ReadObject(s) as List; } return listeBest; } public IEnumerable GetEquipages() { List? listeEquip = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "equipage.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { listeEquip = serializer.ReadObject(s) as List; } return listeEquip; } public IEnumerable GetFruits() { List? listeFDD = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "fruitdudemon.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { listeFDD = serializer.ReadObject(s) as List; } return listeFDD; } public IEnumerable GetIles() { List? listeIle = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "ile.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { listeIle = serializer.ReadObject(s) as List; } return listeIle; } public IEnumerable GetPersonnages() { List? listePerso = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "personnage.xml"; Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { listePerso = serializer.ReadObject(s) as List; } return listePerso; } } }