public FormMain() { InitializeComponent(); BacchusModel = new BacchusModel(); MainController = new MainController(); TreeView.Nodes.Add("Articles", "Articles"); TreeView.Nodes.Add("Marques", "Marques"); TreeView.Nodes.Add("Familles", "Familles"); TreeView.Nodes.Add("Sous-Familles", "Sous-Familles"); TreeView.Sort(); toolStripStatusLabel1.Text = "Il y a " + BacchusModel.Articles.Count + " articles "; }
/// <summary> /// Supprimer un element de la base de données dans le ListView /// </summary> /// <param name="ListItem">String</param> /// <param name="ListView">String</param> /// <param name="BacchusModel">Objet: BacchusModel</param> public void DeleteElement(String ListItem, String ListView, BacchusModel BacchusModel) { if (ListView.Equals("Articles"))//Si la colonne "Articles" est sélectionnée { var Result = MessageBox.Show("Supprimer l'article " + ListItem, "Attention!", MessageBoxButtons.YesNo); if (Result != DialogResult.Yes) { return; } var Article = BacchusModel.SearchArticle(ListItem);//rechercher l'article if (Article != null) { BacchusModel.Articles.Remove(Article); ArticleDao.Delete(Article); } } else if (ListView.Equals("Marques"))//Si la colonne "Marques" est sélectionnée { var Result = MessageBox.Show("Supprimer la marque " + ListItem, "Attention!", MessageBoxButtons.YesNo); if (Result != DialogResult.Yes) { return; } var Marque = BacchusModel.SearchMarque(ListItem);//rechercher le marque if (Marque == null) { BacchusModel.Marques.Remove(Marque); MarqueDao.Delete(Marque); } } else if (ListView.Equals("Familles"))//Si la colonne "Familles" est sélectionnée { var Result = MessageBox.Show("Supprimer la famille " + ListItem, "Attention!", MessageBoxButtons.YesNo); if (Result != DialogResult.Yes) { return; } var Famille = BacchusModel.SearchFamille(ListItem);//rechercher la famille if (Famille == null) { BacchusModel.Familles.Remove(Famille); FamilleDao.Delete(Famille); } } else if (ListView.Equals("Sous-Familles"))//Si la colonne "Sous-Familles" est sélectionnée { var Result = MessageBox.Show("Supprimer l'article " + ListItem, "Attention!", MessageBoxButtons.YesNo); if (Result != DialogResult.Yes) { return; } var SousFamille = BacchusModel.SearchSousFamille(ListItem);//rechercher la sous-famille if (SousFamille == null) { BacchusModel.SousFamilles.Remove(SousFamille); SousFamilleDao.Delete(SousFamille); } } }
/* * public static string ExportToCsv<T>(string fileName, IList<T> listModel) where T : class, new() * { * string results = ""; * try * { * StringBuilder sb = new StringBuilder(); * //通过反射 显示要显示的列 * BindingFlags bf = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static;//反射标识 * Type objType = typeof(T); * PropertyInfo[] propInfoArr = objType.GetProperties(bf); * string header = string.Empty; * List<string> listPropertys = new List<string>(); * foreach (PropertyInfo info in propInfoArr) * { * if (string.Compare(info.Name.ToUpper(), "ID") != 0) //不考虑自增长的id或者自动生成的guid等 * { * if (!listPropertys.Contains(info.Name)) * { * listPropertys.Add(info.Name); * } * header += info.Name + ";"; * } * } * //这里是要生成的表头 * header = "Description" + ";" + "Ref" + ";" + "Marque" + ";" + "Famille" + ";" + "Sous-Famille" + ";" + "Prix H.T."; * sb.AppendLine(header.Trim(';')); //csv头 * * foreach (T model in listModel) * { * string strModel = string.Empty; * foreach (string strProp in listPropertys) * { * foreach (PropertyInfo propInfo in propInfoArr) * { * if (string.Compare(propInfo.Name.ToUpper(), strProp.ToUpper()) == 0) * { * PropertyInfo modelProperty = model.GetType().GetProperty(propInfo.Name); * if (modelProperty != null) * { * object objResult = modelProperty.GetValue(model, null); * string result = ((objResult == null) ? string.Empty : objResult).ToString().Trim(); * if (result.IndexOf(';') != -1) * { * result = "\"" + result.Replace("\"", "\"\"") + "\""; //特殊字符处理 * } * if (!string.IsNullOrEmpty(result)) * { * Type valueType = modelProperty.PropertyType; * if (valueType.Equals(typeof(Nullable<decimal>))) * { * result = decimal.Parse(result).ToString("#.#"); * } * else if (valueType.Equals(typeof(decimal))) * { * result = decimal.Parse(result).ToString("#.#"); * } * else if (valueType.Equals(typeof(Nullable<double>))) * { * result = double.Parse(result).ToString("#.#"); * } * else if (valueType.Equals(typeof(double))) * { * result = double.Parse(result).ToString("#.#"); * } * else if (valueType.Equals(typeof(Nullable<float>))) * { * result = float.Parse(result).ToString("#.#"); * } * else if (valueType.Equals(typeof(float))) * { * result = float.Parse(result).ToString("#.#"); * } * } * strModel += result + ";"; * } * else * { * strModel += ";"; * } * break; * } * } * } * strModel = strModel.Substring(0, strModel.Length - 1); * sb.AppendLine(strModel); * } * string content = sb.ToString(); * * results = content; * * } * catch * { * * } * return results; * * } */ /* * public static string ExportToCsv(string FilePath, FormExport Form_Export, BacchusModel BacchusModel) * { * string FileName = System.IO.Path.GetFileNameWithoutExtension(FilePath); * string Path = System.IO.Path.GetDirectoryName(FilePath); * * var NbLines = (int)BacchusModel.GetArticles().LongCount(); * * Form_Export.ToolStripProgressBar.Maximum = NbLines; * Form_Export.ToolStripProgressBar.Value = 0; * * StreamWriter writer = null; * * //StreamReader.ReadLine(); * * writer = new StreamWriter(FilePath); * StringBuilder sb = new StringBuilder(); * string header = string.Empty; * //这里是要生成的表头 * header = "Description" + ";" + "Ref" + ";" + "Marque" + ";" + "Famille" + ";" + "Sous-Famille" + ";" + "Prix H.T."; * sb.AppendLine(header.Trim(';')); //csv头 * * List<Article> Articles = BacchusModel.GetArticles(); * Articles[i] * for (int i = 0; i < NbLines; i++) * { * for (int j = 0; j < 6; j++) * { * * * * Marque Marque = BacchusModel.SearchMarque(Nom_Marque); * * String ValueArticle = * var Description = Values[0].Trim(); * var Ref_Article = Values[1].Trim(); * var Nom_Marque = Values[2].Trim(); * var Nom_Famille = Values[3].Trim(); * var Nom_SousFamille = Values[4].Trim(); * var PrixHT = float.Parse(Values[5].Trim()); * } * * } * * * * * * * * * * int AddedProducts = 0; * int ExistingProducts = 0; * * using (var StreamReader = new StreamReader(FilePath, Encoding.Default)) * { * //var NbLines = File.ReadAllLines(FilePath).Length; * var NbLines = (int)BacchusModel.GetArticles().LongCount(); * * Form_Export.ToolStripProgressBar.Maximum = NbLines; * Form_Export.ToolStripProgressBar.Value = 0; * * * string Line; * while (writer.WriteLine()) == null) * { * * var Values = Line.Split(';'); * * var Description = Values[0].Trim(); * var Ref_Article = Values[1].Trim(); * var Nom_Marque = Values[2].Trim(); * var Nom_Famille = Values[3].Trim(); * var Nom_SousFamille = Values[4].Trim(); * var PrixHT = float.Parse(Values[5].Trim()); * * if (BacchusModel.SearchArticle(Ref_Article) != null) * { * ExistingProducts += 1; * continue; * } * else * { * AddedProducts += 1; * } * * Marque Marque = BacchusModel.SearchMarque(Nom_Marque); * if (Marque == null) * { * Marque = new Marque(0, Nom_Marque); * BacchusModel.Marques.Add(Marque); * MarqueDAO MarqueDao = new MarqueDAO(); * int countmarque = MarqueDao.Insert(Marque); * * } * * Famille Famille = BacchusModel.SearchFamille(Nom_Famille); * if (Famille == null) * { * Famille = new Famille(0, Nom_Famille); * BacchusModel.Familles.Add(Famille); * FamilleDAO FamilleDao = new FamilleDAO(); * int countfamille = FamilleDao.Insert(Famille); * } * * SousFamille SousFamille = BacchusModel.SearchSousFamille(Nom_SousFamille); * if (SousFamille == null) * { * SousFamille = new SousFamille(0, Famille, Nom_SousFamille); * BacchusModel.SousFamilles.Add(SousFamille); * SousFamilleDAO SousFamilleDao = new SousFamilleDAO(); * SousFamilleDao.Insert(SousFamille); * } * * Article Article = new Article(Ref_Article, Description, SousFamille, Marque, PrixHT, 1); * BacchusModel.Articles.Add(Article); * ArticleDAO ArticleDao = new ArticleDAO(); * ArticleDao.Insert(Article); * * Form_Export.ToolStripProgressBar.Value++; * } * StreamWriter.Close(); * } * * string Message = "Résultat: \n" + * "Nombre d'articles ajoutés " + AddedProducts + "\n" + * "Nombre d'articles anomalies " + ExistingProducts; * return Message; * * } */ public static string ExportToCsv(string FilePath, FormExport Form_Export, BacchusModel BacchusModel) { return(null); }
/// <summary> /// Lire le fichier.csv pour obtenir les données /// </summary> /// <param name="FilePath">string: Chemin d’accès au fichier importé</param> /// <param name="Flag">bool: true->lancer l’intégration en mode écrasement; false->lancer l’intégration en mode ajout</param> /// <param name="Form_Import">FormImport: View_FormImport_Objet</param> /// <param name="BacchusModel">BacchusModel: Model_Tous_Objet</param> /// <returns> /// string : Résultats de l’importation de données /// </returns> public static string ReadFile(string FilePath, bool Flag, FormImport Form_Import, BacchusModel BacchusModel) { if (Flag == true) { BacchusModel.Articles.Clear(); BacchusModel.Marques.Clear(); BacchusModel.SousFamilles.Clear(); BacchusModel.Familles.Clear(); ArticleDAO ArticleDao = new ArticleDAO(); ArticleDao.DeleteAllArticles(); SousFamilleDAO SousFamilleDao = new SousFamilleDAO(); SousFamilleDao.DeleteAllSousFamilles(); MarqueDAO MarqueDao = new MarqueDAO(); MarqueDao.DeleteAllMarques(); FamilleDAO FamilleDao = new FamilleDAO(); FamilleDao.DeleteAllFamilles(); } int AddedProducts = 0; int ExistingProducts = 0; using (var StreamReader = new StreamReader(FilePath, Encoding.Default)) { var NbLines = File.ReadAllLines(FilePath).Length; //La barre de progression: l’intégration des données Form_Import.ToolStripProgressBar.Maximum = NbLines; Form_Import.ToolStripProgressBar.Value = 0; StreamReader.ReadLine(); string Line; while ((Line = StreamReader.ReadLine()) != null) { var Values = Line.Split(';'); var Description = Values[0].Trim(); var Ref_Article = Values[1].Trim(); var Nom_Marque = Values[2].Trim(); var Nom_Famille = Values[3].Trim(); var Nom_SousFamille = Values[4].Trim(); var PrixHT = float.Parse(Values[5].Trim()); if (BacchusModel.SearchArticle(Ref_Article) != null) { ExistingProducts += 1; continue; } else { AddedProducts += 1; } //Ajouter un élément à Marque Marque Marque = BacchusModel.SearchMarque(Nom_Marque); if (Marque == null) { Marque = new Marque(0, Nom_Marque); BacchusModel.Marques.Add(Marque); MarqueDAO MarqueDao = new MarqueDAO(); int countmarque = MarqueDao.Insert(Marque); } //Ajouter un élément à Famille Famille Famille = BacchusModel.SearchFamille(Nom_Famille); if (Famille == null) { Famille = new Famille(0, Nom_Famille); BacchusModel.Familles.Add(Famille); FamilleDAO FamilleDao = new FamilleDAO(); int countfamille = FamilleDao.Insert(Famille); } //Ajouter un élément à SousFamille SousFamille SousFamille = BacchusModel.SearchSousFamille(Nom_SousFamille); if (SousFamille == null) { SousFamille = new SousFamille(0, Famille, Nom_SousFamille); BacchusModel.SousFamilles.Add(SousFamille); SousFamilleDAO SousFamilleDao = new SousFamilleDAO(); SousFamilleDao.Insert(SousFamille); } //Ajouter un élément à Article Article Article = new Article(Ref_Article, Description, SousFamille, Marque, PrixHT, 1); BacchusModel.Articles.Add(Article); ArticleDAO ArticleDao = new ArticleDAO(); ArticleDao.Insert(Article); Form_Import.ToolStripProgressBar.Value++; } StreamReader.Close(); } //Le résultat de l’intégration, nombre d’articles ajoutés, anomalies string Message = "Résultat: \n" + "Nombre d'articles ajoutés " + AddedProducts + "\n" + "Nombre d'articles anomalies " + ExistingProducts; return(Message); }