Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }