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; using Model.Classes; using Model.Managers; 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"))) { SetPersonnage(stubManager.GetPersonnages().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./bateau.xml"))) { SetBateau(stubManager.GetBateaux().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./fruitdudemon.xml"))) { SetFDD(stubManager.GetFruits().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./bestiaire.xml"))) { SetBestiaire(stubManager.GetBestiaires().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./equipage.xml"))) { SetEquipage(stubManager.GetEquipages().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./ile.xml"))) { SetIle(stubManager.GetIles().ToList()); } } public XML_Serializer(string path) { Chemin= path; StubManager stubManager = new StubManager(); if (!File.Exists(Path.Combine(Chemin, "./personnage.xml"))) { SetPersonnage(stubManager.GetPersonnages().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./bateau.xml"))) { SetBateau(stubManager.GetBateaux().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./fruitdudemon.xml"))) { SetFDD(stubManager.GetFruits().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./bestiaire.xml"))) { SetBestiaire(stubManager.GetBestiaires().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./equipage.xml"))) { SetEquipage(stubManager.GetEquipages().ToList()); } if (!File.Exists(Path.Combine(Chemin, "./ile.xml"))) { 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; } } }