/// <summary> /// Permet d'enregistrer le fichier de sauvegarde dans un autre répertoire /// </summary> /// <param name="chemin">Le répertoire où enregistrer la copie de la sauvegarde</param> public void ExporterPersistance(string chemin) { var MasterAnimeFichier = ConvertisseurJson.BibliothèquesVersJson(ListePrincipale, MaCollection); if (!Directory.Exists(chemin)) { Directory.CreateDirectory(chemin); } File.WriteAllText(Path.Combine(chemin, "MasterAnime-Fichier.json"), MasterAnimeFichier.ToString()); }
/// <summary> /// Permet de récupérer un fichier de sauvegarde et de l'incorporer à la persistance /// </summary> /// <param name="chemin">Le fichier et son chemin</param> /// <returns>Retourne dans l'ordre : Nombre Bibliothèque importées, Nombre Bibliothèque à importer, Nombre Oeuvre importées, Nombre Oeuvre à importer</returns> public (int, int, int, int) ImporterPersistance(string cheminFichierAImporter) { int nombreBiblioImportée = 0; int nombreBiblioAImporter = 0; int nombreOeuvreImportée = 0; int nombreOeuvreAImporter = 0; string jsonText = File.ReadAllText(cheminFichierAImporter); JObject json = JObject.Parse(jsonText); Bibliothèque laPrincipale; IEnumerable <Bibliothèque> laCollection; (laPrincipale, laCollection) = ConvertisseurJson.JsonVersBibliothèques(json); //Ajoute les oeuvres à la liste principale en indiquant si elles étaient déjà présentes ou non foreach (Oeuvre oeuvre in laPrincipale.LesOeuvres) { nombreOeuvreAImporter++; if (AjouterOeuvre(oeuvre)) { nombreOeuvreImportée++; } } //Ajoute les bibliothèques à la collection en indiquant si elles étaient déjà présentes ou non foreach (Bibliothèque biblio in laCollection) { nombreBiblioAImporter++; //Met à jour les oeuvres de la bibliothèque à partir de celles de la liste principale for (int i = 0; i < biblio.NombreOeuvre(); i++) { if (ListePrincipale.ContientOeuvre(biblio[i])) { Oeuvre oeuvre = ListePrincipale.ObtenirOeuvre(biblio[i].Nom); biblio.RetirerOeuvre(biblio[i]); biblio.AjouterOeuvre(oeuvre); } else { ListePrincipale.AjouterOeuvre(biblio[i]); } } if (Ajouter(biblio) != null) { nombreBiblioImportée++; } } Sauvegarder(); return(nombreBiblioImportée, nombreBiblioAImporter, nombreOeuvreImportée, nombreOeuvreAImporter); }
/// <summary> /// Écrit les données dans le fichier de la persistance /// </summary> /// <param name="listePrincipale">La Bibliothèque à écrire dans le fichier</param> /// <param name="lesBibliothèques">La collection de bibliothèques à écrire dans le fichier</param> public void SauvegarderDonnées(Bibliothèque listePrincipale, IEnumerable <Bibliothèque> lesBibliothèques) { var MasterAnimeFichier = ConvertisseurJson.BibliothèquesVersJson(listePrincipale, lesBibliothèques); if (!Directory.Exists(RépertoireFichier)) { Directory.CreateDirectory(RépertoireFichier); } File.WriteAllText(CheminFichier, MasterAnimeFichier.ToString()); Charger(); }
/// <summary> /// Récupère les données contenu dans le fichier de la persistance et les renvoies /// </summary> /// <returns>Les données récupérées, une Bibliothèque et une collection de Bibliothèques</returns> public (Bibliothèque, IEnumerable <Bibliothèque>) ChargerDonnées() { string jsonText = File.ReadAllText(CheminFichier); JObject json = JObject.Parse(jsonText); Bibliothèque laPrincipale; IEnumerable <Bibliothèque> laCollection; (laPrincipale, laCollection) = ConvertisseurJson.JsonVersBibliothèques(json); return(laPrincipale, laCollection); }