示例#1
0
        /// <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());
        }
示例#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);
        }
示例#3
0
        /// <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();
        }
示例#4
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);
        }