diff --git a/MangaMap/App.xaml.cs b/MangaMap/App.xaml.cs index f852825..0e6ec07 100644 --- a/MangaMap/App.xaml.cs +++ b/MangaMap/App.xaml.cs @@ -6,19 +6,31 @@ namespace MangaMap; public partial class App : Application { - //public Manager MyManager { get; private set; } = new Manager(new Stub.Stub()); //pour utiliser le stub comme moyen de persistance. - public Manager MyManager { get; private set; } = new Manager(new Stub.DataContract()); + public string FileName { get; set; } = "SauvegardeDonnees.xml"; + public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory); + + public Manager MyManager { get; private set; } = new Manager(new Stub.Stub()); //pour utiliser le stub comme moyen de persistance. public Admin MyAdmin { get; private set; } = new Admin("test", "test@test.ts", "Pseudo_test"); public App() { InitializeComponent(); + + if (File.Exists(Path.Combine(FilePath, FileName))) + { + MyManager = new Manager(new Stub.DataContract()); //pour utiliser le dataContract comme moyen de persistance. + } + MyManager.charger(); MyManager.Admins.Add(MyAdmin); MainPage = new AppShell(); - //MyManager.Persistance = new DataContract(); + + if (!File.Exists(Path.Combine(FilePath, FileName))) + { + MyManager.Persistance = new DataContract(); //pour utiliser le stub comme moyen de persistance. + } MyManager.sauvegarder(); } diff --git a/MangaMap/Stub/DataContract.cs b/MangaMap/Stub/DataContract.cs index f001333..d19f31c 100644 --- a/MangaMap/Stub/DataContract.cs +++ b/MangaMap/Stub/DataContract.cs @@ -40,25 +40,27 @@ namespace MangaMap.Stub { var serializer = new DataContractSerializer(typeof(DataToPersist)); - DataToPersist data; - /*if (File.Exists(Path.Combine(FilePath, FileName))) - {*/ - using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName))) - { - data = serializer.ReadObject(s) as DataToPersist; - }/* + if (!Directory.Exists(FilePath)) + { + Debug.WriteLine("Directory doesn't exist."); + Directory.CreateDirectory(FilePath); } - else + + /*using (Stream s = File.Create(Path.Combine(FilePath, FileName))) { - data = new DataToPersist(); + serializer.WriteObject(s, o); //Version d'enregistrement des données sans indentation. }*/ + DataToPersist data = new DataToPersist(); + data.Oeuvres = o; + data.Utilisateurs = u; + var settings = new XmlWriterSettings() { Indent = true }; using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName))) { using (XmlWriter w = XmlWriter.Create(tw, settings)) { - serializer.WriteObject(w, data); // Enregistrer toutes les données dans le fichier + serializer.WriteObject(w, data); //Version d'enregistrement des données avec indentation. } } }