コード例 #1
0
        /// <summary>
        /// Clean the current database and add new datas from a CSV file.
        /// </summary>
        public void Import_Erase(string filename, ProgressBar Progress)
        {
            List <ParserModel> records = ReadCSV(filename);
            string             AdvertMessage;
            List <int>         SuccessArticles;
            List <int>         SuccessFamilles;
            List <int>         SuccessMarques;
            List <int>         SuccessSousFamilles;

            if (records != null)
            {
                Progress.Maximum = 8;

                /* Erase all datas */
                ArticlesDao.Clear();
                Progress.PerformStep();

                SousFamillesDao.Clear();
                Progress.PerformStep();

                FamillesDao.Clear();
                Progress.PerformStep();

                MarquesDao.Clear();
                Progress.PerformStep();

                /* Creating data objects */
                List <FamillesModel>     Familles     = new List <FamillesModel>();
                List <SousFamillesModel> SousFamilles = new List <SousFamillesModel>();
                List <MarquesModel>      Marques      = new List <MarquesModel>();
                List <ArticlesModel>     Articles     = new List <ArticlesModel>();
                FamillesModel            Famille;
                SousFamillesModel        SousFamille;
                MarquesModel             Marque;
                ArticlesModel            Article;

                foreach (ParserModel Parse in records)
                {
                    Famille = new FamillesModel(Parse.Famille);
                    Marque  = new MarquesModel(Parse.Marque);

                    if (ContainsFamille(Familles, Famille) == null)
                    {
                        Familles.Add(Famille);
                    }

                    SousFamille = new SousFamillesModel(ContainsFamille(Familles, Famille), Parse.SousFamille);

                    if (ContainsSousFamille(SousFamilles, SousFamille) == null)
                    {
                        SousFamilles.Add(SousFamille);
                    }

                    if (ContainsMarque(Marques, Marque) == null)
                    {
                        Marques.Add(Marque);
                    }

                    Article = new ArticlesModel(Parse.Ref, Parse.Description,
                                                ContainsSousFamille(SousFamilles, SousFamille),
                                                ContainsMarque(Marques, Marque), Parse.Prix, 0);
                    Articles.Add(Article);
                }

                SuccessFamilles = FamillesDao.ImportDatas(Familles);
                Progress.PerformStep();

                SuccessSousFamilles = SousFamillesDao.ImportDatas(SousFamilles);
                Progress.PerformStep();

                SuccessMarques = MarquesDao.ImportDatas(Marques);
                Progress.PerformStep();

                SuccessArticles = ArticlesDao.ImportDatas(Articles);
                Progress.PerformStep();

                ImportResult(SuccessFamilles, SuccessSousFamilles, SuccessMarques, SuccessArticles);
            }
            ImportWindow.Close();
        }