/// <summary> /// Permet d'ajouter une bibliothèque à la persistance et à différentes bibliothèques /// </summary> /// <param name="oeuvre">L'oeuvre à ajouter</param> /// <param name="bibliothèques">Les bibliothèques à laquelle l'ajouter</param> /// <returns>True si elle a bien été ajoutée, false si elle existe déjà</returns> public bool AjouterOeuvre(Oeuvre oeuvre, params Bibliothèque[] bibliothèques) { bool retour = ListePrincipale.AjouterOeuvre(oeuvre); if (retour) { bibliothèques.ToList().ForEach(biblio => biblio.AjouterOeuvre(oeuvre)); } Sauvegarder(); return(retour); }
/// <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); }