/// <summary> /// Method used to find a row by using his object. /// </summary> /// <param name="Famille">The data to find (without Id).</param> /// <returns>The row Id (Reference).</returns> public static int Contains(FamillesModel Famille) { int Reference = -1; SQLiteConnection Connection = DaoContext.Connection; Connection.Open(); using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"SELECT * FROM Familles WHERE Nom=@Nom;"; Cmd.Parameters.AddWithValue("@Nom", Famille.Nom); using (SQLiteDataReader Reader = Cmd.ExecuteReader()) { if (Reader.Read()) { Reference = int.Parse(Reader["RefFamille"].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 families. /// </summary> public static List <FamillesModel> SelectAll() { bool IsOpenHere = false; List <FamillesModel> AllTable = new List <FamillesModel>(); FamillesModel Famille = null; SQLiteConnection Connection = DaoContext.Connection; if (Connection.State == ConnectionState.Closed) { Connection.Open(); IsOpenHere = true; } using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"SELECT * FROM Familles;"; SQLiteDataReader reader = Cmd.ExecuteReader(); while (reader.Read()) { Famille = new FamillesModel(int.Parse(reader["RefFamille"].ToString()), reader["Nom"].ToString()); AllTable.Add(Famille); } reader.Close(); } if (Connection.State == ConnectionState.Open && IsOpenHere) { Connection.Close(); } return(AllTable); }
/// <summary> /// Get a family in database. /// </summary> /// <param name="Id"><b>Id</b>The Id of the Family to find.</param> public static FamillesModel SelectByID(int Id) { bool IsOpenHere = false; FamillesModel Famille = null; SQLiteConnection Connection = DaoContext.Connection; if (Connection.State == ConnectionState.Closed) { Connection.Open(); IsOpenHere = true; } using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"SELECT * FROM Familles WHERE RefFamille = @RefFamille;"; Cmd.Parameters.AddWithValue("@RefFamille", Id); SQLiteDataReader reader = Cmd.ExecuteReader(); while (reader.Read()) { Famille = new FamillesModel(reader["Nom"].ToString()); } reader.Close(); } if (Connection.State == ConnectionState.Open && IsOpenHere) { Connection.Close(); } return(Famille); }
/// <summary> /// Check if a Famille is in a FamillesModel list. /// </summary> /// <param name="Familles">The list to check.</param> /// <param name="Famille">The Famille to check.</param> /// <returns></returns> private FamillesModel ContainsFamille(List <FamillesModel> Familles, FamillesModel Famille) { foreach (FamillesModel FamilleInList in Familles) { if (FamilleInList.Nom == Famille.Nom) { return(FamilleInList); } } return(null); }
/// <summary> /// Update the current Famille. /// </summary> /// <param name="CurrentDescription">The current Famille.</param> public void UpdateFamille(String CurrentDescription) { if (ReferenceVM == -1) { FamillesModel CurrentFamille = new FamillesModel(CurrentDescription); FamillesDao.Insert(CurrentFamille); } else { FamillesModel CurrentFamille = new FamillesModel(ReferenceVM, CurrentDescription); FamillesDao.Update(CurrentFamille); } View.Close(); }
/// <summary> /// Initialize the ComboxBox with all the saved Familles and put the current Article Familles first. /// </summary> /// <param name="Familles">The saved Familles.</param> /// <param name="CurrentFamille">The current Article Familles.</param> public void SetFamilleChampModif(List <FamillesModel> Familles, FamillesModel CurrentFamille) { Dictionary <int, String> FamilleCombo = new Dictionary <int, String>(); FamilleCombo.Add(CurrentFamille.RefFamille, CurrentFamille.Nom); foreach (FamillesModel Famille in Familles) { if (Famille.RefFamille != CurrentFamille.RefFamille) { FamilleCombo.Add(Famille.RefFamille, Famille.Nom); } } this.FamilleChamp.DataSource = new BindingSource(FamilleCombo, null); this.FamilleChamp.DisplayMember = "Value"; this.FamilleChamp.ValueMember = "Key"; }
/// <summary> /// Method used to update a row (by Id). /// </summary> /// <param name="Famille">The data to update.</param> public static void Update(FamillesModel Famille) { SQLiteConnection Connection = DaoContext.Connection; Connection.Open(); using (SQLiteCommand Cmd = Connection.CreateCommand()) { Cmd.CommandText = @"UPDATE Familles SET Nom=@Nom WHERE RefFamille=@RefFamille;"; Cmd.Parameters.AddWithValue("@RefFamille", Famille.RefFamille); Cmd.Parameters.AddWithValue("@Nom", Famille.Nom); Cmd.ExecuteNonQuery(); } Connection.Close(); }
/// <summary> /// Insert a familly in database. /// </summary> /// <param name="Famille"><b>Articles</b>The familly to add.</param> public static void Insert(FamillesModel Famille) { SQLiteConnection Connection = DaoContext.Connection; Connection.Open(); using (SQLiteCommand Cmd = Connection.CreateCommand()) { /* Request to add the new familly. */ Cmd.CommandText = @"INSERT INTO Familles(Nom) VALUES(@Nom);"; Cmd.Parameters.AddWithValue("@Nom", Famille.Nom); Cmd.ExecuteNonQuery(); Cmd.CommandText = @"select last_insert_rowid()"; int LastId = int.Parse(Cmd.ExecuteScalar().ToString()); Famille.RefFamille = 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 Famille Description. /// </summary> /// <param name="CurrentFamille">The current Famille Description.</param> public void SetDescriptionFamille(FamillesModel CurrentFamille) { this.DescriptionChamp.Text = CurrentFamille.Nom; }