コード例 #1
0
ファイル: ImporterEcrasement.cs プロジェクト: Salyel/Bacchus
        /// <summary>
        /// Import de la base de données
        /// </summary>
        public void ImporterBDD()
        {
            Modale.SetProgressBarValue(10);
            MarquesDAO      MarquesD      = new MarquesDAO(Modale.GetPathToSave());
            FamillesDAO     FamillesD     = new FamillesDAO(Modale.GetPathToSave());
            SousFamillesDAO SousFamillesD = new SousFamillesDAO(Modale.GetPathToSave());
            ArticlesDAO     ArticlesD     = new ArticlesDAO(Modale.GetPathToSave());

            List <string> AllMarques              = new List <string>();
            List <string> AllFamilles             = new List <string>();
            List <string> AllSousFamilles         = new List <string>();
            List <string> AllSousFamillesFamilles = new List <string>();          //Pour récupérer la famille des sous familles

            //Pour les articles, on est obligé de tout stocker dans une liste à part car on doit récupérer les Ref des autres objets (donc ils doivent être créés avant)
            List <string> AllArticlesRefArticle     = new List <string>();
            List <string> AllArticlesDescription    = new List <string>();
            List <string> AllArticlesSousFamilleNom = new List <string>();
            List <string> AllArticlesMarqueNom      = new List <string>();
            List <float>  AllArticlesPrixHT         = new List <float>();

            Modale.SetProgressBarValue(25);
            using (var reader = new StreamReader(Modale.GetPathToImport(), Encoding.Default))
            {
                reader.ReadLine();                      //On passe la première ligne (les headers du fichier)
                //On stocke tous dans des listes en parcourant notre fichier, on créera après (on ne stocke qu'une occurence de chaque item)
                while (!reader.EndOfStream)
                {
                    var line   = reader.ReadLine();
                    var values = line.Split(';');

                    if (!AllMarques.Exists(e => e.EndsWith(values[2])))
                    {
                        AllMarques.Add(values[2]);
                    }
                    if (!AllFamilles.Exists(e => e.EndsWith(values[3])))
                    {
                        AllFamilles.Add(values[3]);
                    }
                    if (!AllSousFamilles.Exists(e => e.EndsWith(values[4])))
                    {
                        AllSousFamilles.Add(values[4]);
                        AllSousFamillesFamilles.Add(values[3]);
                    }

                    AllArticlesRefArticle.Add(values[1]);
                    AllArticlesDescription.Add(values[0]);
                    AllArticlesMarqueNom.Add(values[2]);
                    AllArticlesSousFamilleNom.Add(values[4]);
                    AllArticlesPrixHT.Add(float.Parse(values[5]));
                }
            }
            //Maintenant on crée tout en base
            Modale.SetProgressBarValue(50);
            for (int Index = 0; Index < AllMarques.Count; Index++)
            {
                Marques Marque = new Marques(AllMarques[Index]);
                MarquesD.AjouterMarque(Marque);
            }
            Modale.SetProgressBarValue(60);
            for (int Index = 0; Index < AllFamilles.Count; Index++)
            {
                Familles Famille = new Familles(AllFamilles[Index]);
                FamillesD.AjouterFamille(Famille);
            }
            Modale.SetProgressBarValue(70);
            for (int Index = 0; Index < AllSousFamilles.Count; Index++)
            {
                SousFamilles SousFamille = new SousFamilles(FamillesD.GetRefByName(AllSousFamillesFamilles[Index]), AllSousFamilles[Index]);
                SousFamillesD.AjouterSousFamille(SousFamille);
            }
            Modale.SetProgressBarValue(80);
            for (int Index = 0; Index < AllArticlesRefArticle.Count; Index++)
            {
                int      RefSousFamille = SousFamillesD.GetRefByName(AllArticlesSousFamilleNom[Index]);
                int      RefMarque      = MarquesD.GetRefByName(AllArticlesMarqueNom[Index]);
                Articles Article        = new Articles(AllArticlesRefArticle[Index], AllArticlesDescription[Index], RefSousFamille, RefMarque, AllArticlesPrixHT[Index], 0);
                ArticlesD.AjouterArticle(Article);
            }

            Modale.SetProgressBarValue(100);
            Modale.GetLabelImport().Text = "Importation en mode Ecrasement terminé !";

            string       message = ArticlesD.GetNbArticle() + " articles ont été ajoutés à la base de données.";
            const string caption = "Intégration en mode Ecrasement terminé !";
            var          result  = MessageBox.Show(message, caption,
                                                   MessageBoxButtons.OK,
                                                   MessageBoxIcon.Information);
        }
コード例 #2
0
ファイル: ImporterAjout.cs プロジェクト: Salyel/Bacchus
        /// <summary>
        /// Importer la base de données SQLite en mode ajout
        /// </summary>
        public void ImporterBDD()
        {
            int NombreArticleAjout   = 0;
            int NombreArticleUpdated = 0;

            MarquesDAO      MarquesD      = new MarquesDAO(Modale.GetPathToSave());
            FamillesDAO     FamillesD     = new FamillesDAO(Modale.GetPathToSave());
            SousFamillesDAO SousFamillesD = new SousFamillesDAO(Modale.GetPathToSave());
            ArticlesDAO     ArticlesD     = new ArticlesDAO(Modale.GetPathToSave());

            List <string> AllMarques              = new List <string>();
            List <string> AllFamilles             = new List <string>();
            List <string> AllSousFamilles         = new List <string>();
            List <string> AllSousFamillesFamilles = new List <string>();          //Pour récupérer la famille des sous familles

            //Pour les articles, on est obligé de tout stocker dans une liste à part car on doit récupérer les Ref des autres objets (donc ils doivent être créés avant)
            List <string> AllArticlesRefArticle     = new List <string>();
            List <string> AllArticlesDescription    = new List <string>();
            List <string> AllArticlesSousFamilleNom = new List <string>();
            List <string> AllArticlesMarqueNom      = new List <string>();
            List <float>  AllArticlesPrixHT         = new List <float>();

            Modale.SetProgressBarValue(25);
            using (var reader = new StreamReader(Modale.GetPathToImport(), Encoding.Default))
            {
                reader.ReadLine();                      //On passe la première ligne (les headers du fichier)
                //On stocke tous dans des listes en parcourant notre fichier, on créera après (on ne stocke qu'une occurence de chaque item)
                while (!reader.EndOfStream)
                {
                    var line   = reader.ReadLine();
                    var values = line.Split(';');

                    if (!AllMarques.Exists(e => e.EndsWith(values[2])))
                    {
                        AllMarques.Add(values[2]);
                    }
                    if (!AllFamilles.Exists(e => e.EndsWith(values[3])))
                    {
                        AllFamilles.Add(values[3]);
                    }
                    if (!AllSousFamilles.Exists(e => e.EndsWith(values[4])))
                    {
                        AllSousFamilles.Add(values[4]);
                        AllSousFamillesFamilles.Add(values[3]);
                    }

                    AllArticlesRefArticle.Add(values[1]);
                    AllArticlesDescription.Add(values[0]);
                    AllArticlesMarqueNom.Add(values[2]);
                    AllArticlesSousFamilleNom.Add(values[4]);
                    AllArticlesPrixHT.Add(float.Parse(values[5]));
                }
            }
            //Maintenant on crée tout en base
            Modale.SetProgressBarValue(50);
            for (int Index = 0; Index < AllMarques.Count; Index++) //ajout des marques
            {
                if (!MarquesD.CheckIfExists(AllMarques[Index]))
                {
                    Marques Marque = new Marques(AllMarques[Index]);
                    MarquesD.AjouterMarque(Marque);
                }
            }
            Modale.SetProgressBarValue(60);
            for (int Index = 0; Index < AllFamilles.Count; Index++) //ajout des familles
            {
                if (!FamillesD.CheckIfExists(AllFamilles[Index]))
                {
                    Familles Famille = new Familles(AllFamilles[Index]);
                    FamillesD.AjouterFamille(Famille);
                }
            }
            Modale.SetProgressBarValue(70);
            for (int Index = 0; Index < AllSousFamilles.Count; Index++) // ajout des sous familles
            {
                //Là je devais m'occuper d'ajouter la sous famille si elle était pas là, ou la modifier si sa famille avait changé (jsp si c'est possible)
                if (!SousFamillesD.CheckIfExists(AllSousFamilles[Index]))
                {
                    SousFamilles SousFamille = new SousFamilles(FamillesD.GetRefByName(AllSousFamillesFamilles[Index]), AllSousFamilles[Index]);
                    SousFamillesD.AjouterSousFamille(SousFamille);
                }
                else
                {
                    SousFamillesD.Update(FamillesD.GetRefByName(AllSousFamillesFamilles[Index]), AllSousFamilles[Index]);
                }
            }
            Modale.SetProgressBarValue(80);
            for (int Index = 0; Index < AllArticlesRefArticle.Count; Index++) //ajout des articles
            {
                if (!ArticlesD.CheckIfExists(AllArticlesRefArticle[Index]))
                {
                    int      RefSousFamille = SousFamillesD.GetRefByName(AllArticlesSousFamilleNom[Index]);
                    int      RefMarque      = MarquesD.GetRefByName(AllArticlesMarqueNom[Index]);
                    Articles Article        = new Articles(AllArticlesRefArticle[Index], AllArticlesDescription[Index], RefSousFamille, RefMarque, AllArticlesPrixHT[Index], 0);
                    ArticlesD.AjouterArticle(Article);
                    NombreArticleAjout++;
                }
                else
                {
                    int      RefSousFamille = SousFamillesD.GetRefByName(AllArticlesSousFamilleNom[Index]);
                    int      RefMarque      = MarquesD.GetRefByName(AllArticlesMarqueNom[Index]);
                    Articles monArticle     = ArticlesD.GetArticleByRef(AllArticlesRefArticle[Index]);
                    if (monArticle.GetDescription() != AllArticlesDescription[Index] || monArticle.GetRefSousFamille() != RefSousFamille || monArticle.GetRefMarque() != RefMarque || monArticle.GetPrixHT() != AllArticlesPrixHT[Index])
                    {
                        ArticlesD.Update(AllArticlesRefArticle[Index], AllArticlesDescription[Index], RefSousFamille, RefMarque, AllArticlesPrixHT[Index], 0);
                        NombreArticleUpdated++;
                    }
                }
            }
            Modale.SetProgressBarValue(100);
            Modale.GetLabelImport().Text = "Importation en mode Ajout terminé !";

            string       message = NombreArticleAjout + " articles ont été ajoutés à la base de données et " + NombreArticleUpdated + " articles ont été mis à jour.";
            const string caption = "Intégration en mode Ajout terminé !";
            var          result  = MessageBox.Show(message, caption,
                                                   MessageBoxButtons.OK,
                                                   MessageBoxIcon.Information); //affichage d'une messageBox pour indiquer que tout s'est bien passé
        }