/// <summary> /// Empty the database. /// </summary> public void EmptyDataBase() { ArticleDao.EmptyArticles(); FamilleDao.EmptyFamilles(); SousFamilleDao.EmptySousFamilles(); MarqueDao.EmptyMarques(); }
public void CsvImport(bool Flag, string ParamFilePath, FormImport FormImport) { ModelList ModelList = new ModelList(); ModelListController ModelListController = new ModelListController(); ModelList = ModelListController.GetAllModelList(); ArticlesDao ArticleDao = new ArticlesDao(); FamillesDao FamilleDao = new FamillesDao(); MarquesDao MarqueDao = new MarquesDao(); SousFamillesDao SousFamilleDao = new SousFamillesDao(); Articles Article = new Articles(); Marques Marque = new Marques(); SousFamilles SousFamille = new SousFamilles(); Familles Famille = new Familles(); try { int AddedArticles = 0; int ExistingArticles = 0; if (Flag == true) { ModelList.Articles.Clear(); ModelList.Familles.Clear(); ModelList.Marques.Clear(); ModelList.SousFamilles.Clear(); ArticleDao.EmptyArticles(); SousFamilleDao.EmptySousFamilles(); MarqueDao.EmptyMarques(); FamilleDao.EmptyFamilles(); } if (ParamFilePath == "") { if (MessageBox.Show("Please choose a file!", "ERROR") == DialogResult.OK) { FormImport.label_FichierImporte.Text = "FileName: " + System.IO.Path.GetFileName(ChooseFile()); } } using (var StreamReader = new StreamReader(ParamFilePath, Encoding.Default)) { var NbLines = File.ReadAllLines(ParamFilePath).Length; FormImport.progressBar.Maximum = NbLines; FormImport.progressBar.Value = 1; StreamReader.ReadLine(); string Line; while ((Line = StreamReader.ReadLine()) != null) { var Values = Line.Split(';'); var Description = Values[0].Trim(); var RefArticle = Values[1].Trim(); var MarqueName = Values[2].Trim(); var FamilleName = Values[3].Trim(); var SousFamilleName = Values[4].Trim(); var Prix = Values[5].Trim(); if (Prix.IndexOf("\"") >= 0) { Prix = Prix.Replace("\"", ""); } if (Prix.EndsWith(",")) { Prix = Prix.Remove(Prix.Length - 1, 1); } if (Prix.IndexOf(",") != -1) { int StartIndex = 0; int Count = 0; while (true) { int Index = Prix.IndexOf(",", StartIndex); if (Index != -1) { Count++; StartIndex = Index + 1; } else { break; } } StartIndex = 0; for (int i = 0; i < Count - 1; i++) { int Index = Prix.IndexOf(",", StartIndex); StartIndex = Index + 1; Prix = Prix.Remove(Index, Index); } Prix = Prix.Replace(",", "."); } var PrixHT = double.Parse(Prix, new CultureInfo("en-US")); if (ArticleDao.FindArticleByRefArticle(RefArticle)) { ExistingArticles += 1; if (Flag == false) { Article = ArticleDao.FindArticlesByRefArticle(RefArticle); if (Article.Description != Description) { Article.Description = Description; } if (Article.PrixHT != PrixHT) { Article.PrixHT = PrixHT; } if (Article.Quantite != 1) { Article.Quantite = 1; } if (!MarqueDao.FindMarqueByMarqueName(MarqueName)) { Marque = new Marques(MarqueName); ModelList.Marques.Add(Marque); MarqueDao.AddMarque(Marque); Article.Marque = Marque; } if (!SousFamilleDao.FindSousFamilleBySousFamilleName(SousFamilleName)) { SousFamille = new SousFamilles(SousFamilleName); ModelList.SousFamilles.Add(SousFamille); SousFamilleDao.AddSousFamille(SousFamille, Famille); Article.SousFamille = SousFamille; } } continue; } else { AddedArticles += 1; } if (!MarqueDao.FindMarqueByMarqueName(MarqueName)) { Marque = new Marques(MarqueName); ModelList.Marques.Add(Marque); MarqueDao.AddMarque(Marque); } if (!ArticleDao.FindArticleByFamilleName(FamilleName)) { Famille = new Familles(FamilleName); ModelList.Familles.Add(Famille); FamilleDao.AddFamille(Famille); } if (!SousFamilleDao.FindSousFamilleBySousFamilleName(SousFamilleName)) { SousFamille = new SousFamilles(SousFamilleName); ModelList.SousFamilles.Add(SousFamille); SousFamilleDao.AddSousFamille(SousFamille, Famille); } Article = new Articles(RefArticle, Description, FamilleDao.FindFamillesByRefSousFamille(SousFamille.RefSousFamille), SousFamille, Marque, PrixHT, 1); ModelList.Articles.Add(Article); ArticleDao.AddArticle(Article); FormImport.progressBar.Value++; } StreamReader.Close(); } string Message = "Nombre d'articles ajoutés " + AddedArticles + "\n" + "Nombre d'articles anomalies " + ExistingArticles; MessageBox.Show(" Import success!\n" + Message, System.IO.Path.GetFileName(ParamFilePath)); String FileDirectory = Path.GetDirectoryName(ParamFilePath); //if (FileDirectory != null) //FormMain_FileSystemWatcher(); } catch (System.IO.IOException) { MessageBox.Show("Please close the selected file!"); } }
/// <summary> /// Read the csv file in two modes, mode erasement et mode ajout. /// </summary> /// <param name="Flag"></param> /// <param name="FilePath"></param> /// <param name="FormImport"></param> public static void ReadFile(bool Flag, string FilePath, FormImport FormImport) { try { int AddedArticles = 0; int ExistingArticles = 0; if (Flag == true) { ModelList.Articles.Clear(); ModelList.Familles.Clear(); ModelList.Marques.Clear(); ModelList.SousFamilles.Clear(); ArticleDao.EmptyArticles(); SousFamilleDao.EmptySousFamilles(); MarqueDao.EmptyMarques(); FamilleDao.EmptyFamilles(); } if (FilePath == "") { if (MessageBox.Show("Please choose a file!", "ERROR") == DialogResult.OK) { using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = "csv files (*.csv)|*.csv"; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { FilePath = openFileDialog.FileName; FormImport.label_FichierImporte.Text = "FileName: " + System.IO.Path.GetFileName(FilePath); } } } } using (var StreamReader = new StreamReader(FilePath, Encoding.Default)) { var NbLines = File.ReadAllLines(FilePath).Length; FormImport.progressBar.Maximum = NbLines; FormImport.progressBar.Value = 1; StreamReader.ReadLine(); string Line; while ((Line = StreamReader.ReadLine()) != null) { var Values = Line.Split(';'); var Description = Values[0].Trim(); var RefArticle = Values[1].Trim(); var MarqueName = Values[2].Trim(); var FamilleName = Values[3].Trim(); var SousFamilleName = Values[4].Trim(); //var Prix = Values[5].Trim(); /* * if (Prix.IndexOf("\"") >= 0) * Prix = Prix.Replace("\"", ""); * * if (Prix.EndsWith(",")) * Prix = Prix.Remove(Prix.Length - 1, 1); * * if (Prix.IndexOf(",") != -1) * { * int StartIndex = 0; * int Count = 0; * while (true) * { * int Index = Prix.IndexOf(",", StartIndex); * if (Index != -1) * { * Count++; * StartIndex = Index + 1; * } * else * break; * } * * StartIndex = 0; * for (int i = 0; i < Count - 1; i++) * { * int Index = Prix.IndexOf(",", StartIndex); * StartIndex = Index + 1; * Prix = Prix.Remove(Index, Index); * } * * Prix = Prix.Replace(",", "."); * } * * var PrixHT = float.Parse(Prix, CultureInfo.InvariantCulture.NumberFormat); */ var PrixHT = float.Parse(Values[5].Trim().Replace(",", "."), CultureInfo.InvariantCulture.NumberFormat); if (ArticleController.FindArticleByRefArticle(RefArticle)) { ExistingArticles += 1; if (Flag == false) { Article = ArticleController.FindArticlesByRefArticle(RefArticle); if (Article.Description != Description) { Article.Description = Description; } if (Article.PrixHT != PrixHT) { Article.PrixHT = PrixHT; } if (Article.Quantite != 1) { Article.Quantite = 1; } if (!MarqueController.FindMarqueByMarqueName(MarqueName)) { Marque = new Marques(MarqueName); ModelList.Marques.Add(Marque); MarqueDao.AddMarque(Marque); Article.Marque = Marque; } if (!SousFamilleController.FindSousFamilleBySousFamilleName(SousFamilleName)) { SousFamille = new SousFamilles(SousFamilleName); ModelList.SousFamilles.Add(SousFamille); SousFamilleDao.AddSousFamille(SousFamille, Famille); Article.SousFamille = SousFamille; } } continue; } else { AddedArticles += 1; } if (!MarqueController.FindMarqueByMarqueName(MarqueName)) { Marque = new Marques(MarqueName); ModelList.Marques.Add(Marque); MarqueDao.AddMarque(Marque); } if (!ArticleController.FindArticleByFamilleName(FamilleName)) { Famille = new Familles(FamilleName); ModelList.Familles.Add(Famille); FamilleDao.AddFamille(Famille); } if (!SousFamilleController.FindSousFamilleBySousFamilleName(SousFamilleName)) { SousFamille = new SousFamilles(SousFamilleName); ModelList.SousFamilles.Add(SousFamille); SousFamilleDao.AddSousFamille(SousFamille, Famille); } Article = new Articles(RefArticle, Description, FamilleController.FindFamillesByRefSousFamille(SousFamille.RefSousFamille), SousFamille, Marque, PrixHT, 1); ModelList.Articles.Add(Article); ArticleDao.AddArticle(Article); FormImport.progressBar.Value++; } StreamReader.Close(); } string Message = "Nombre d'articles ajoutés " + AddedArticles + "\n" + "Nombre d'articles anomalies " + ExistingArticles; MessageBox.Show(" Import success!\n" + Message, System.IO.Path.GetFileName(FilePath)); FileDirectory = Path.GetDirectoryName(FilePath); if (FileDirectory != null) { FormMain_FileSystemWatcher(); } } catch (System.IO.IOException) { MessageBox.Show("Please close the selected file!"); } }