diff --git a/Sources/Model/IDataManager.cs b/Sources/Model/IDataManager.cs index 8cf01e9..49170b6 100644 --- a/Sources/Model/IDataManager.cs +++ b/Sources/Model/IDataManager.cs @@ -14,5 +14,11 @@ namespace Model IEnumerable GetFruits(); IEnumerable GetIles(); IEnumerable GetPersonnages(); + void SetBateau(List listeBateaux); + void SetBestiaire(List listeBest); + void SetEquipage(List listeEquip); + void SetFDD(List listeFDD); + void SetIle(List listeIle); + void SetPersonnage(List listePerso); } } diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs index 98e402c..e673f1c 100644 --- a/Sources/Model/Manager.cs +++ b/Sources/Model/Manager.cs @@ -16,7 +16,6 @@ namespace Model public class Manager { public IDataManager DataManager { get; set; } - public XML_Serializer XML_Serializer { get; set; } public ObservableCollection Bateaux { get; set; } public ObservableCollection Personnages { get; set; } public ObservableCollection Fruits { get; set; } @@ -26,18 +25,10 @@ namespace Model public ObjetOhara? SelectedItem { get; set; } = null; - public Manager() { - DataManager = new StubManager(); - XML_Serializer = new XML_Serializer(); - if (File.Exists(@"C:\Users\yobrugiere1\Documents\Ohara\Sources\Ohara\Resources\XML\bateau.xml")) - Bateaux = new ObservableCollection(XML_Serializer.GetBateaux()); - else - Bateaux = new ObservableCollection(DataManager.GetBateaux()); - if (File.Exists(@"C:\Users\yobrugiere1\Documents\Ohara\Sources\Ohara\Resources\XML\personnage.xml")) - Personnages = new ObservableCollection(XML_Serializer.GetPersonnages()); - else - Personnages = new ObservableCollection(DataManager.GetPersonnages()); - + public Manager(IDataManager dataManager) { + DataManager = dataManager; + Bateaux = new ObservableCollection(DataManager.GetBateaux()); + Personnages = new ObservableCollection(DataManager.GetPersonnages()); Fruits = new ObservableCollection(DataManager.GetFruits()); Iles = new ObservableCollection(DataManager.GetIles()); Bestiaire = new ObservableCollection(DataManager.GetBestiaires()); @@ -170,7 +161,7 @@ namespace Model if (b.Equals(obj)) { b.EstFavori = value; - XML_Serializer.SetBateau(Bateaux.ToList()); + DataManager.SetBateau(Bateaux.ToList()); } } else if (t.Equals(typeof(Equipage))) @@ -179,7 +170,7 @@ namespace Model if (b.Equals(obj)) { b.EstFavori = value; - XML_Serializer.SetEquipage(Equipages.ToList()); + DataManager.SetEquipage(Equipages.ToList()); } } @@ -189,7 +180,7 @@ namespace Model if (b.Equals(obj)) { b.EstFavori = value; - XML_Serializer.SetPersonnage(Personnages.ToList()); + DataManager.SetPersonnage(Personnages.ToList()); } } @@ -199,7 +190,7 @@ namespace Model if (b.Equals(obj)) { b.EstFavori = value; - XML_Serializer.SetIle(Iles.ToList()); + DataManager.SetIle(Iles.ToList()); } } @@ -209,7 +200,7 @@ namespace Model if (b.Equals(obj)) { b.EstFavori = true; - XML_Serializer.SetFDD(Fruits.ToList()); + DataManager.SetFDD(Fruits.ToList()); } } @@ -219,7 +210,7 @@ namespace Model if (b.Equals(obj)) { b.EstFavori = value; - XML_Serializer.SetBestiaire(Bestiaire.ToList()); + DataManager.SetBestiaire(Bestiaire.ToList()); } } diff --git a/Sources/Model/Serializer/XML_Serializer.cs b/Sources/Model/Serializer/XML_Serializer.cs index 1c768a4..b016161 100644 --- a/Sources/Model/Serializer/XML_Serializer.cs +++ b/Sources/Model/Serializer/XML_Serializer.cs @@ -1,4 +1,5 @@ -using System; +using Model.Stub; +using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; @@ -10,16 +11,72 @@ 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(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { @@ -36,7 +93,7 @@ namespace Model.Serializer { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "fruitdudemon.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { @@ -54,7 +111,7 @@ namespace Model.Serializer { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bestiaire.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { @@ -72,7 +129,7 @@ namespace Model.Serializer { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "equipage.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { @@ -90,7 +147,7 @@ namespace Model.Serializer { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "ile.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { @@ -108,7 +165,7 @@ namespace Model.Serializer { var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bateau.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(xmlFile)) { @@ -127,7 +184,7 @@ namespace Model.Serializer List listeBateau = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bateau.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { @@ -141,7 +198,7 @@ namespace Model.Serializer List listeBest = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "bestiaire.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { @@ -154,7 +211,7 @@ namespace Model.Serializer List listeEquip = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "equipage.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { @@ -167,7 +224,7 @@ namespace Model.Serializer List listeFDD = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "fruitdudemon.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { @@ -180,7 +237,7 @@ namespace Model.Serializer List listeIle = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "ile.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { @@ -193,7 +250,7 @@ namespace Model.Serializer List listePerso = new List(); var serializer = new DataContractSerializer(typeof(List)); string xmlFile = "personnage.xml"; - Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "C:\\Users\\yobrugiere1\\Documents\\Ohara\\Sources\\Ohara\\Resources\\XML")); + Directory.SetCurrentDirectory(Path.Combine(Chemin, "./")); using (Stream s = File.OpenRead(xmlFile)) { diff --git a/Sources/Model/Stub/StubManager.cs b/Sources/Model/Stub/StubManager.cs index bbb04b7..0f1645e 100644 --- a/Sources/Model/Stub/StubManager.cs +++ b/Sources/Model/Stub/StubManager.cs @@ -1,4 +1,5 @@ -using System; +using Model.Serializer; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,7 +9,7 @@ namespace Model.Stub { public class StubManager : IDataManager { - + public StubPersonnage StubPersonnage { get; set; } public StubFruitDuDemon StubFruitDuDemon { get; set; } public StubEquipage StubEquipage { get; set; } @@ -18,6 +19,7 @@ namespace Model.Stub public StubManager() { + StubPersonnage = new StubPersonnage(); StubFruitDuDemon = new StubFruitDuDemon(); StubEquipage = new StubEquipage(); @@ -52,5 +54,35 @@ namespace Model.Stub { return StubIle.RecupererIle(); } + + public void SetBateau(List listeBateaux) + { + throw new NotImplementedException(); + } + + public void SetBestiaire(List listeBest) + { + throw new NotImplementedException(); + } + + public void SetEquipage(List listeEquip) + { + throw new NotImplementedException(); + } + + public void SetFDD(List listeFDD) + { + throw new NotImplementedException(); + } + + public void SetIle(List listeIle) + { + throw new NotImplementedException(); + } + + public void SetPersonnage(List listePerso) + { + throw new NotImplementedException(); + } } } diff --git a/Sources/Ohara/App.xaml.cs b/Sources/Ohara/App.xaml.cs index 22d1d53..e3c09d8 100644 --- a/Sources/Ohara/App.xaml.cs +++ b/Sources/Ohara/App.xaml.cs @@ -1,15 +1,18 @@ using Model; +using Model.Serializer; +using Model.Stub; using Plugin.Maui.Audio; namespace Ohara; public partial class App : Application { - public Manager manager { get; set; } = new Manager(); + + public Manager manager { get; set; } = new Manager(new XML_Serializer(FileSystem.Current.AppDataDirectory)); public App() { - InitializeComponent(); - + InitializeComponent(); + MainPage = new AppShell(); } } diff --git a/Sources/Ohara/PageBateau.xaml b/Sources/Ohara/PageBateau.xaml index a8403dc..284831b 100644 --- a/Sources/Ohara/PageBateau.xaml +++ b/Sources/Ohara/PageBateau.xaml @@ -7,28 +7,19 @@ - - - - - - - - - - - + + + - + diff --git a/Sources/Ohara/PageBestiaire.xaml b/Sources/Ohara/PageBestiaire.xaml index 1173da4..b97820d 100644 --- a/Sources/Ohara/PageBestiaire.xaml +++ b/Sources/Ohara/PageBestiaire.xaml @@ -8,7 +8,7 @@ - + diff --git a/Sources/Ohara/PageBestiaire.xaml.cs b/Sources/Ohara/PageBestiaire.xaml.cs index 4395120..9461126 100644 --- a/Sources/Ohara/PageBestiaire.xaml.cs +++ b/Sources/Ohara/PageBestiaire.xaml.cs @@ -12,7 +12,7 @@ public partial class PageBestiaire : ContentPage public PageBestiaire() { InitializeComponent(); - listeBest.ItemsSource = manager.GetBestiaires(); + BindingContext = manager; } async void listeBest_SelectionChanged(object sender, SelectionChangedEventArgs e) diff --git a/Sources/Ohara/PageEquipage.xaml b/Sources/Ohara/PageEquipage.xaml index ff56f12..fada58d 100644 --- a/Sources/Ohara/PageEquipage.xaml +++ b/Sources/Ohara/PageEquipage.xaml @@ -7,48 +7,26 @@ - + - - - - - - - - - - - - - - - - - - + - + diff --git a/Sources/Ohara/PageEquipage.xaml.cs b/Sources/Ohara/PageEquipage.xaml.cs index 9593771..8ff1778 100644 --- a/Sources/Ohara/PageEquipage.xaml.cs +++ b/Sources/Ohara/PageEquipage.xaml.cs @@ -9,8 +9,9 @@ public partial class PageEquipage : ContentPage public PageEquipage() { InitializeComponent(); - listeEquip.ItemsSource = manager.GetEquipages(); - + BindingContext = manager; + + } async void listeEquip_SelectionChanged(object sender, SelectionChangedEventArgs e) { diff --git a/Sources/Ohara/PageFDD.xaml b/Sources/Ohara/PageFDD.xaml index 63afc14..d4c30d2 100644 --- a/Sources/Ohara/PageFDD.xaml +++ b/Sources/Ohara/PageFDD.xaml @@ -7,20 +7,25 @@ - + - + diff --git a/Sources/Ohara/PageFDD.xaml.cs b/Sources/Ohara/PageFDD.xaml.cs index 354a158..9a7867c 100644 --- a/Sources/Ohara/PageFDD.xaml.cs +++ b/Sources/Ohara/PageFDD.xaml.cs @@ -14,11 +14,11 @@ public partial class PageFDD : ContentPage { InitializeComponent(); - listeFDD.ItemsSource = manager.GetFruits(); + BindingContext = manager; void OnTextChanged(object sender, EventArgs e) { SearchBar searchBar = (SearchBar)sender; - listeFDD.ItemsSource = manager.RechercheFDD(searchBar.Text,manager.GetFruits()); + listeFDD.ItemsSource = manager.RechercheFDD(searchBar.Text,manager.Fruits.ToList()); } searchBar.TextChanged += OnTextChanged; FiltrerType = new Command((type) => listeFDD.ItemsSource = manager.FiltrerFDD(type.ToString())); diff --git a/Sources/Ohara/PageIle.xaml b/Sources/Ohara/PageIle.xaml index 1de3d73..07b154c 100644 --- a/Sources/Ohara/PageIle.xaml +++ b/Sources/Ohara/PageIle.xaml @@ -7,28 +7,22 @@ - - - - - - - - - - - + +