Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        /// <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);
        }