/// <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!"); } }
/// <summary> /// Add an article to the database. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button_Add_Click(object sender, EventArgs e) { var RefArticle = this.textBox_RefArticle.Text; var Description = this.textBoxDescription.Text; var MarqueName = this.comboBox_Marque.Text; var FamilleName = this.comboBox_Famille.Text; var SousFamilleName = this.comboBox_SousFamille.Text; var PrixHT = this.textBox_PrixHT.Text; var Quantite = this.textBox_Quantite.Text; if (RefArticle == "") { MessageBox.Show("Please enter the RefArticle!", "ERROR"); } else if (Description == "") { MessageBox.Show("Please enter the Description!", "ERROR"); } else if (PrixHT == "") { MessageBox.Show("Please enter the Price!", "ERROR"); } else if (Quantite == "") { MessageBox.Show("Please enter the Quantite!", "ERROR"); } else if (MarqueName == "") { MessageBox.Show("Please enter the Marque Name!", "ERROR"); } else if (FamilleName == "") { MessageBox.Show("Please enter the Famille Name!", "ERROR"); } else if (SousFamilleName == "") { MessageBox.Show("Please enter the SousFamille Name!", "ERROR"); } else if (RefArticle.Length >= 15) { MessageBox.Show("RefArticle is too long! The maximum length of the RefArticle is 15!"); } else if (!float.TryParse(PrixHT, out var Prix)) { MessageBox.Show("Please enter the right price!"); } else if (!int.TryParse(Quantite, out var Number)) { MessageBox.Show("Please enter the right quantity!"); } else if (ArticleController.FindArticleByRefArticle(RefArticle)) { MessageBox.Show("Article Already exsited!", "ERROR"); } else { if (!SousFamilleController.FindSousFamilleBySousFamilleName(SousFamilleName)) { var Result = MessageBox.Show("SousFamille doesn't exsite! Do you want to add a new SousFamille?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (Result == DialogResult.OK) { AddSousFamille AddSousFamille = new AddSousFamille { StartPosition = FormStartPosition.CenterParent }; AddSousFamille.ShowDialog(this); } else { return; } } if (!MarqueController.FindMarqueByMarqueName(MarqueName)) { var Result = MessageBox.Show("Marque doesn't exsite! Do you want to add a new Marque?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (Result == DialogResult.OK) { Marques NewMarque = new Marques(MarqueName); NewMarque.RefMarque = MarqueDao.GetMaxRefMarque() + 1; MarqueDao.AddMarque(NewMarque); } else { return; } } SousFamilles SousFamille = SousFamilleController.FindSousFamillesBySousFamilleName(SousFamilleName); Marques Marque = MarqueController.FindMarquesByMarqueName(MarqueName); string Price = float.Parse(PrixHT).ToString(); Price = Price.Replace(".", ","); Articles Article = new Articles(RefArticle, Description, FamilleController.FindFamillesByRefSousFamille(SousFamille.RefSousFamille), SousFamille, Marque, float.Parse(Price), int.Parse(Quantite)); ArticleDao.AddArticle(Article); if (ArticleController.FindArticleByRefArticle(RefArticle)) { MessageBox.Show("Add Article succeed!"); this.Close(); } } }
/// <summary> /// Modify an article of the database. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button_Modify_Click(object sender, EventArgs e) { var Description = this.textBox_Description.Text; var MarqueName = this.comboBox_Marque.Text; var FamilleName = this.comboBox_Famille.Text; var SousFamilleName = this.comboBox_SousFamille.Text; var PrixHT = this.textBox_PrixHT.Text; var Quantite = this.textBox_Quantite.Text; if (Description == "") { MessageBox.Show("Please enter the Description!", "ERROR"); } else if (MarqueName == "") { MessageBox.Show("Please enter the Marque Name!", "ERROR"); } else if (FamilleName == "") { MessageBox.Show("Please enter the Famille Name!", "ERROR"); } else if (SousFamilleName == "") { MessageBox.Show("Please enter the SousFamille Name!", "ERROR"); } else if (PrixHT == "") { MessageBox.Show("Please enter the Price!", "ERROR"); } else if (Quantite == "") { MessageBox.Show("Please enter the Quantite!", "ERROR"); } else if (!float.TryParse(PrixHT, out var Prix)) { MessageBox.Show("Please enter the right price!"); } else if (!int.TryParse(Quantite, out var Number)) { MessageBox.Show("Please enter the right quantity!"); } else { if (!SousFamilleController.FindSousFamilleBySousFamilleName(SousFamilleName)) { if (MessageBox.Show("SousFamille doesn't exsite! Do you want to add a new SousFamille?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { AddSousFamille AddSousFamille = new AddSousFamille { StartPosition = FormStartPosition.CenterParent }; AddSousFamille.ShowDialog(this); } else { return; } } if (!MarqueController.FindMarqueByMarqueName(MarqueName)) { if (MessageBox.Show("Marque doesn't exsite! Do you want to add a new Marque?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { AddMarque AddMarque = new AddMarque { StartPosition = FormStartPosition.CenterParent }; AddMarque.ShowDialog(this); } else { return; } } SousFamilles SousFamille = SousFamilleController.FindSousFamillesBySousFamilleName(SousFamilleName); Marques Marque = MarqueController.FindMarquesByMarqueName(MarqueName); Articles Article = new Articles(this.label_ReferenceArticle.Text, Description, FamilleController.FindFamillesByRefSousFamille(SousFamille.RefSousFamille), SousFamille, Marque, float.Parse(PrixHT), int.Parse(Quantite)); if (!ArticleController.CompareArticles(ArticleController.FindArticlesByRefArticle(Article.RefArticle), Article)) { ArticleDao.ModifyArticle(Article); if (ArticleController.FindArticleByRefArticle(Article.RefArticle)) { MessageBox.Show("Modify succeed!"); this.Close(); } } else { MessageBox.Show("The article can't be the same before and after modification!"); return; } } }