Exemple #1
0
        //Constructeur

        /// <summary>
        /// Lancement de l'importation
        /// </summary>
        /// <param name="Modale"> fenetre d'importation </param>
        public ImportButtonController(ModaleImporter Modale)
        {
            this.Modale = Modale;
            Modale.GetFormMain().GetLabelAjouter().Text = "";
            //si on a pas choisi un mode d'importation
            if (Modale.GetButtonsValue().Equals("") || Modale.GetPathToImport().Equals("") || Modale.GetPathToSave().Equals(""))
            {
                Modale.GetLabelImport().Text = "Veuillez choisir un mode d'intégration pour la base de données, un fichier .csv à importer et un fichier .sqlite dans lequel le fichier .csv sera importé.";
            }

            else
            {
                //import en mode ecrasement
                if (Modale.GetButtonsValue().Equals("Ecrasement"))
                {
                    Modale.GetLabelImport().Text        = "Import en mode Ecrasement en cours ...";
                    ImporterEcrasement ImportEcrasement = new ImporterEcrasement(Modale);
                }
                //import en mode ajout
                else if (Modale.GetButtonsValue().Equals("Ajout"))
                {
                    Modale.GetLabelImport().Text = "Import en mode Ajout en cours ...";
                    ImporterAjout ImportAjout    = new ImporterAjout(Modale);
                }

                //mise à jour de la treeView
                InitializeTreeView initializeTree = new InitializeTreeView(Modale.GetFormMain().GetTreeView());
                initializeTree.ConstructTree(Modale.GetPathToSave());

                //stockage du chemin de la bdd
                Modale.GetFormMain().SetPathToSave(Modale.GetPathToSave());

                //mise à jour du statusStrip
                ToolStatusStripController FamilleStripControl     = new ToolStatusStripController(Modale.GetFormMain().GetToolStatusStrip("Familles"));
                ToolStatusStripController ArticleStripControl     = new ToolStatusStripController(Modale.GetFormMain().GetToolStatusStrip("Article"));
                ToolStatusStripController SousFamilleStripControl = new ToolStatusStripController(Modale.GetFormMain().GetToolStatusStrip("SousFamilles"));
                ToolStatusStripController MarqueStripControl      = new ToolStatusStripController(Modale.GetFormMain().GetToolStatusStrip("Marques"));

                ArticlesDAO     ArticlesDAO     = new ArticlesDAO(Modale.GetPathToSave());
                MarquesDAO      MarquesDAO      = new MarquesDAO(Modale.GetPathToSave());
                FamillesDAO     FamillesDAO     = new FamillesDAO(Modale.GetPathToSave());
                SousFamillesDAO SousFamillesDAO = new SousFamillesDAO(Modale.GetPathToSave());

                ArticleStripControl.ChangeNumber(ArticlesDAO.CountAllArticles());
                FamilleStripControl.ChangeNumber(FamillesDAO.CountAllFamilles());
                SousFamilleStripControl.ChangeNumber(SousFamillesDAO.CountAllSousFamilles());
                MarqueStripControl.ChangeNumber(MarquesDAO.CountAllMarques());
            }
        }
Exemple #2
0
        //Constructeur

        /// <summary>
        /// Constructeur permettant de faire l'importation
        /// </summary>
        /// <param name="Modale"> fenêtre d'import </param>
        public ImporterEcrasement(ModaleImporter Modale)
        {
            this.Modale = Modale;

            //création de la connexion avec la base de données
            //suppression des tables de la base locale
            SQLiteConnection M_dbConnection = new SQLiteConnection("Data Source=" + Modale.GetPathToSave());

            M_dbConnection.Open();

            String Sql = "DELETE FROM 'Marques'";

            Console.WriteLine(Sql);
            SQLiteCommand Command = new SQLiteCommand(Sql, M_dbConnection);

            Command.ExecuteNonQuery();

            Sql = "DELETE FROM 'Familles'";
            Console.WriteLine(Sql);
            Command = new SQLiteCommand(Sql, M_dbConnection);
            Command.ExecuteNonQuery();

            Sql = "DELETE FROM 'SousFamilles'";
            Console.WriteLine(Sql);
            Command = new SQLiteCommand(Sql, M_dbConnection);
            Command.ExecuteNonQuery();

            Sql = "DELETE FROM 'Articles'";
            Console.WriteLine(Sql);
            Command = new SQLiteCommand(Sql, M_dbConnection);
            Command.ExecuteNonQuery();

            Sql = "delete from sqlite_sequence";
            Console.WriteLine(Sql);
            Command = new SQLiteCommand(Sql, M_dbConnection);
            Command.ExecuteNonQuery();

            M_dbConnection.Close();

            ImporterBDD();
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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é
        }