/// <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(); }