/// <summary> /// Method used to find a row by using his object. /// </summary> /// <param name="Marque">The data to find (without Id).</param> /// <returns>The row Id (Reference).</returns> public static int Contains(MarquesModel Marque) { int Reference = -1; SQLiteConnection Connection = DaoContext.Connection; Connection.Open(); using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"SELECT * FROM Marques WHERE Nom=@Nom;"; Cmd.Parameters.AddWithValue("@Nom", Marque.Nom); using (SQLiteDataReader Reader = Cmd.ExecuteReader()) { if (Reader.Read()) { Reference = int.Parse(Reader["RefMarque"].ToString()); } } } Connection.Close(); return(Reference); }
/// <summary> /// The ViewModel constructor. /// </summary> /// <param name="Type"></param> /// <param name="Classe"></param> /// <param name="RefArticle"></param> public AjouterModifierViewModel(String Type, String Classe, int Reference) { View = new AjouterModifierView(this, Classe, Type); if (Type.Equals("Modifier")) { if (Classe.Equals("Familles")) { FamillesModel CurrentFamille = FamillesDao.SelectByID(Reference); View.SetDescriptionFamille(CurrentFamille); ReferenceVM = Reference; } else if (Classe.Equals("SousFamilles")) { SousFamillesModel CurrentSousFamille = SousFamillesDao.SelectByID(Reference); Modif = (SousFamillesDao.SelectByID(Reference)).Famille; View.SetDescriptionSousFamille(CurrentSousFamille); ReferenceVM = Reference; } else { MarquesModel CurrentMarque = MarquesDao.SelectByID(Reference); View.SetDescriptionMarque(CurrentMarque); ReferenceVM = Reference; } } }
/// <summary> /// Method used to select a list of brands. /// </summary> /// <param name="Articles">The list of articles.</param> public static List <MarquesModel> SelectAll() { bool IsOpenHere = false; List <MarquesModel> AllTable = new List <MarquesModel>(); MarquesModel Marque = null; SQLiteConnection Connection = DaoContext.Connection; if (Connection.State == ConnectionState.Closed) { Connection.Open(); IsOpenHere = true; } using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"SELECT * FROM Marques;"; SQLiteDataReader reader = Cmd.ExecuteReader(); while (reader.Read()) { Marque = new MarquesModel(int.Parse(reader["RefMarque"].ToString()), reader["Nom"].ToString()); AllTable.Add(Marque); } reader.Close(); } if (Connection.State == ConnectionState.Open && IsOpenHere) { Connection.Close(); } return(AllTable); }
/// <summary> /// Get a brand in database. /// </summary> /// <param name="Article"><b>Articles</b>The article to add.</param> public static MarquesModel SelectByID(int id) { bool IsOpenHere = false; MarquesModel Marque = null; SQLiteConnection Connection = DaoContext.Connection; if (Connection.State == ConnectionState.Closed) { Connection.Open(); IsOpenHere = true; } using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"SELECT * FROM Marques WHERE RefMarque = @RefMarque;"; Cmd.Parameters.AddWithValue("@RefMarque", id); SQLiteDataReader reader = Cmd.ExecuteReader(); while (reader.Read()) { Marque = new MarquesModel(reader["Nom"].ToString()); } reader.Close(); } if (Connection.State == ConnectionState.Open && IsOpenHere) { Connection.Close(); } return(Marque); }
/// <summary> /// Check if a Marque is in a MarquesModel list. /// </summary> /// <param name="Marques">The list to check.</param> /// <param name="Marque">The Marque to check.</param> /// <returns></returns> private MarquesModel ContainsMarque(List <MarquesModel> Marques, MarquesModel Marque) { foreach (MarquesModel MarqueInList in Marques) { if (MarqueInList.Nom == Marque.Nom) { return(MarqueInList); } } return(null); }
/// <summary> /// Update the current Marque. /// </summary> /// <param name="CurrentDescription">The current Marque.</param> public void UpdateMarque(String CurrentDescription) { if (ReferenceVM == -1) { MarquesModel CurrentMarque = new MarquesModel(CurrentDescription); MarquesDao.Insert(CurrentMarque); } else { MarquesModel CurrentMarque = new MarquesModel(ReferenceVM, CurrentDescription); MarquesDao.Update(CurrentMarque); } View.Close(); }
/// <summary> /// Initialize the ComboxBox with all the saved Marques and put the current Article Marques first. /// </summary> /// <param name="Marques">The saved Marques.</param> /// <param name="CurrentMarque">The current Article Marques.</param> public void SetMarqueChampModif(List <MarquesModel> Marques, MarquesModel CurrentMarque) { Dictionary <int, String> MarqueCombo = new Dictionary <int, String>(); MarqueCombo.Add(CurrentMarque.RefMarque, CurrentMarque.Nom); foreach (MarquesModel Marque in Marques) { if (Marque.RefMarque != CurrentMarque.RefMarque) { MarqueCombo.Add(Marque.RefMarque, Marque.Nom); } } this.MarqueChamp.DataSource = new BindingSource(MarqueCombo, null); this.MarqueChamp.DisplayMember = "Value"; this.MarqueChamp.ValueMember = "Key"; }
/// <summary> /// Method used to update a row (by Id). /// </summary> /// <param name="Marque">The data to update.</param> public static void Update(MarquesModel Marque) { SQLiteConnection Connection = DaoContext.Connection; Connection.Open(); using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"UPDATE Marques SET Nom=@Nom WHERE RefMarque=@RefMarque;"; Cmd.Parameters.AddWithValue("@RefMarque", Marque.RefMarque); Cmd.Parameters.AddWithValue("@Nom", Marque.Nom); Cmd.ExecuteNonQuery(); } Connection.Close(); }
/// <summary> /// Insert a trademark in database. /// </summary> /// <param name="Marque"><b>Articles</b>The trademark to add.</param> public static void Insert(MarquesModel Marque) { SQLiteConnection Connection = DaoContext.Connection; Connection.Open(); using (SQLiteCommand Cmd = Connection.CreateCommand()) { /* Request to add the new trademark. */ Cmd.CommandText = @"INSERT INTO Marques(Nom) VALUES(@Nom);"; Cmd.Parameters.AddWithValue("@Nom", Marque.Nom); Cmd.ExecuteNonQuery(); Cmd.CommandText = @"select last_insert_rowid()"; int LastId = int.Parse(Cmd.ExecuteScalar().ToString()); Marque.RefMarque = LastId; } Connection.Close(); }
/// <summary> /// Update or Create the current item with the new values and close the Update Window. /// </summary> /// <param name="RefArticle">The Reference of the Article.</param> /// <param name="Description">The Description of the Article.</param> /// <param name="Famille">The Famille of the Article.</param> /// <param name="SousFamille">The Sous Famille of the Article.</param> /// <param name="Marque">The Marque of the Article.</param> /// <param name="Quantite">The Quantite of the Article.</param> public void UpdateArticle(string RefArticle, string Description, String Famille, String SousFamille, String Marque, int Quantite) { FamillesModel FamilleObj = new FamillesModel(Famille); FamilleObj.RefFamille = FamillesDao.Contains(FamilleObj); SousFamillesModel SousFamilleObj = new SousFamillesModel(FamilleObj, SousFamille); SousFamilleObj.RefSousFamille = SousFamillesDao.Contains(SousFamilleObj); MarquesModel MarqueObj = new MarquesModel(Marque); MarqueObj.RefMarque = MarquesDao.Contains(MarqueObj); ArticlesModel Article = new ArticlesModel(RefArticle, Description, SousFamilleObj, MarqueObj, 0, Quantite); if (ArticlesDao.Contains(Article)) { ArticlesDao.Update(Article); } else { ArticlesDao.Insert(Article); } View.Close(); }
/// <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(); }
/// <summary> /// Initialize the Textfield with the current Marque Description. /// </summary> /// <param name="CurrentMarque">The current Marque Description.</param> public void SetDescriptionMarque(MarquesModel CurrentMarque) { this.DescriptionChamp.Text = CurrentMarque.Nom; }