public override bool SQLCreerColonnes(OleDbConnection m_bd) { ArticlePhilatélique Article = null; Tuple <string, string>[] colonnes = { new Tuple <string, string>("type", "Text(80)"), new Tuple <string, string>("numero", "Integer"), new Tuple <string, string>("motif", "Text(50)"), new Tuple <string, string>("date_parution", "Date"), new Tuple <string, string>("prix_payé", "Double"), new Tuple <string, string>("coin", "Integer"), new Tuple <string, string>("valeur_timbre", "Double"), new Tuple <string, string>("nombre_timbres", "Integer"), new Tuple <string, string>("taille_forme", "Text(50)") }; try { RequeteSQL.InsererColonnesSiNonExistantes("Articles", colonnes); } catch { return(false); } return(true); }
public override ArticlePhilatélique SQLLireArticle(OleDbConnection m_bd, int p_numero) { ArticlePhilatélique Article = null; try { using (BdReader bdr = new BdReader(m_bd, "SELECT numero, motif, date_parution, prix_payé, " + "coin, valeur_timbre, nombre_timbres, taille_forme " + "FROM Articles " + "WHERE numero=?", p_numero)) { if (!bdr.Read() && !bdr.IsDBNull(1) && !bdr.IsDBNull(4) && !bdr.IsDBNull(5) && !bdr.IsDBNull(6) && !bdr.IsDBNull(7)) { return(null); } Article = new BlocDeCoin( bdr.GetInt32(0), bdr.GetString(1), bdr.GetDateTimeOuNull(2), bdr.GetDoubleOuNull(3), (Coin)bdr.GetInt32(4), bdr.GetDouble(5), bdr.GetInt32(6), bdr.GetString(7)); } } catch { } return(Article); }
/// <summary> /// Ajoute l'article (les observateurs sont ensuite notifiés). /// </summary> /// <param name="p_article">l'article à ajouter</param> public void Ajouter(ArticlePhilatélique p_article) { m_articles.Add(p_article); m_docModifié = true; RequeteSQL.AjouterArticle(p_article); Notifier(this); }
public bool Exécuter() // Template Method (appelle une Factory Method) { DlgSaisieArticle d; if (m_motif != null) { d = CréerDlgSaisieAvecDonnées(m_motif, m_dateParution); } else { d = CréerDlgSaisie(); } if (d.ShowDialog() == DialogResult.Cancel) { return(false); } ArticlePhilatélique article = d.Extraire(); m_numéroArticleAjouté = article.Numéro; m_article = article; Document.Instance.Ajouter(article); return(true); }
/// <summary> /// Inscrit la nouvelle version de l'article (les observateurs sont ensuite notifiés). /// (un article portant le même numéro doit déjà exister) /// </summary> /// <param name="p_article">l'article pour remplacer l'ancien</param> public void Modifier(ArticlePhilatélique p_article) { Stack <ArticlePhilatélique> tempStack = new Stack <ArticlePhilatélique>(); foreach (ArticlePhilatélique article in m_articles) { if (article.Numéro == p_article.Numéro) { tempStack.Push(p_article); } else { tempStack.Push(article); } } m_articles.Clear(); foreach (ArticlePhilatélique article in tempStack) { m_articles.Push(article); } m_docModifié = true; Notifier(this); }
/// <summary> /// Modifier un article dans la base des données /// </summary> /// <param name="p_article"></param> public static void ModifierArticle(ArticlePhilatélique p_article) { try { SupprimerArticle(p_article.Numéro); AjouterArticle(p_article); } catch { } }
/// <summary> /// Inscrit la nouvelle version de l'article (les observateurs sont ensuite notifiés). /// (un article portant le même numéro doit déjà exister) /// </summary> /// <param name="p_article">l'article pour remplacer l'ancien</param> public void Modifier(ArticlePhilatélique p_article) { int indiceArticle = m_articles.FindIndex(a => a.Numéro == p_article.Numéro); Debug.Assert(indiceArticle != -1); m_articles[indiceArticle] = p_article; m_docModifié = true; RequeteSQL.ModifierArticle(p_article); Notifier(this); }
public static ArticlePhilatélique ArticleSelonNumero(int p_numero) { string type = BdScalar.Get <string>(m_bd, "SELECT type " + "FROM Articles " + "WHERE numero=?", p_numero); // Obtenir la bonne fabrique IFabriqueCommande f = LesFabriques.TrouverFabrique(type); // Obtenir la commande sql du type à chercher CommandeLireSQL cmdLireArticle = (CommandeLireSQL)f.CréerCommandeSQLPourLireArticle(); // Obtenir l'article avec la bonne commande sql ArticlePhilatélique article = cmdLireArticle.ExecuterSQLLireArticle(m_bd, p_numero); return(article); }
private void listViewArticles_SelectedIndexChanged(object sender, EventArgs e) { if (listViewArticles.SelectedItems.Count == 0) { textBoxDétails.Text = ""; m_articleCourant = null; } else { int noArticle = (int)listViewArticles.SelectedItems[0].Tag; m_articleCourant = m_doc.ArticleSelonNuméro(noArticle); textBoxDétails.Text = m_articleCourant.ToString().Replace("\n", "\r\n");; } ActiverDésactiverContrôlesPourLaListe(); }
public bool Exécuter() { DlgSaisieArticle d = CréerDlgSaisie(); if (d.ShowDialog() == DialogResult.Cancel) { return(false); } m_article = d.Extraire(); GestionCommandes.GetInstance().PousserCommandeAnnulable(this); GestionCommandes.GetInstance().ViderCommandeRétablissante(); Document.Instance.Ajouter(m_article); Document.Instance.Enregistrer(); return(true); }
/// <summary> /// Ajouter un Article à la base de donnée /// </summary> /// <param name="p_article"></param> /// <returns>true quand operation reussit, false sinon</returns> public static bool AjouterArticle(ArticlePhilatélique p_article) { // Obtenir la bonne fabrique IFabriqueCommande f = LesFabriques.FabriqueDe(p_article.GetType()); CommandeEcrireSQL cmdEcrireArticle = (CommandeEcrireSQL)f.CréerCommandeSQLPourEcrireArticle(); // Executer le sql correspondant à l'article try { return(cmdEcrireArticle.ExecuterSQLEnregistrerArticle(m_bd, p_article)); } catch (Exception e) { MB.AvertirCritique("Article ne peut etre ajouté à la base des données. « {0} ».", e.Message); return(false); } }
public override bool SQLEcrireArticle(OleDbConnection m_bd, ArticlePhilatélique p_article) { BlocDeCoin Article = p_article as BlocDeCoin; try { BdNonQuery insert = new BdNonQuery(m_bd, "INSERT INTO Articles(type, numero, motif, date_parution, prix_payé, " + "coin, valeur_timbre, nombre_timbres, taille_forme ) " + "VALUES(?,?,?,?,? ,?,?,?,?)", Article.GetType().ToString(), Article.Numéro, Article.Motif, Article.Parution.Value.Date, Article.PrixPayé, (int)Article.Coin, Article.ValeurTimbre, Article.NbTimbres, Article.TailleEtForme); insert.ExecuteNonQuery(); } catch { return(false); } return(true); }
/// <summary> /// Renvoie tous les artiles. /// </summary> /// <returns>Toutes les productions.</returns> public static IEnumerable <ArticlePhilatélique> ToutesLesArticles() { using (BdReader bdr = new BdReader(m_bd, "SELECT type, numero " + "FROM Articles " + "ORDER BY type")) { while (bdr.Read()) { // Obtenir la bonne fabrique IFabriqueCommande f = LesFabriques.FabriqueDe(Type.GetType(bdr.GetString(0))); // Obtenir la commande sql du type à chercher CommandeLireSQL cmdLireArticle = (CommandeLireSQL)f.CréerCommandeSQLPourLireArticle(); // Obtenir l'article avec la bonne commande sql ArticlePhilatélique article = cmdLireArticle.ExecuterSQLLireArticle(m_bd, bdr.GetInt32(1)); yield return(article); } } }
/// <summary> /// Vrai constructeur à utiliser /// </summary> /// <param name="p_opération">Le type d'opération désiré</param> /// <param name="p_article">L'article à traiter (normalement null pour les ajouts)</param> protected DlgSaisieArticle(TypeDeSaisie p_opération, ArticlePhilatélique p_article) { InitializeComponent(); CorrecteurDécimal.Corriger(textBoxPrixPayé); Article = p_article; if (Article != null) { InitialiserLesChamps(); } if (p_opération != TypeDeSaisie.Ajout && p_opération != TypeDeSaisie.Modification) { DésactiverLesChamps(); } ChargerComboBoxMotifs(); }
public override bool SQLEcrireArticle(OleDbConnection m_bd, ArticlePhilatélique p_article) { TimbreSeul Article = p_article as TimbreSeul; try { BdNonQuery insert = new BdNonQuery(m_bd, "INSERT INTO Articles(type, numero, motif, date_parution, prix_payé, " + "valeur_timbre, obliteration, taille_forme) " + "VALUES(?,?,?,?,? ,?,?,?)", Article.GetType().ToString(), Article.Numéro, Article.Motif, Article.Parution.Value.Date, Article.PrixPayé, Article.ValeurTimbre, (int)Article.Oblitération, Article.TailleEtForme); insert.ExecuteNonQuery(); } catch (Exception e) { MB.AvertirCritique("Une erreur s'est produite lors de l'insertion d'un nouvel article dans la base de donnée. \n\n" + "{0}\n\n", e.Message); return(false); } return(true); }
/// <summary> /// Vrai constructeur à utiliser /// </summary> /// <param name="p_opération">Le type d'opération désiré</param> /// <param name="p_article">L'article à traiter (normalement null pour les ajouts)</param> protected DlgSaisieArticle(TypeDeSaisie p_opération, ArticlePhilatélique p_article) { InitializeComponent(); CorrecteurDécimal.Corriger(textBoxPrixPayé); Article = p_article; comboBoxMotifs.Items.Clear(); foreach (string motif in Document.Instance.ObtenirTousLesMotifs()) { comboBoxMotifs.Items.Add(motif); } if (Article != null) { InitialiserLesChamps(); } if (p_opération != TypeDeSaisie.Ajout && p_opération != TypeDeSaisie.Modification) { DésactiverLesChamps(); } }
public override bool ConfirmerSuppression(ArticlePhilatélique p_article) { return(DialogResult.OK == new DlgSaisieBlocDeCoin(TypeDeSaisie.Suppression, p_article as BlocDeCoin).ShowDialog()); }
public CommandeAjoutBC(ArticlePhilatélique p_article = null) { m_article = p_article; }
public override DlgSaisieArticle CréerDlgSaisie(ArticlePhilatélique p_article) => new DlgSaisieBlocDeCoin(TypeDeSaisie.Modification, p_article as BlocDeCoin);
public ICommande CréerCommandeSupprimer(ArticlePhilatélique p_articleCourant) => new CommandeSuppressionBC(p_articleCourant as BlocDeCoin); // Particulier
public override DlgSaisieArticle CréerDlgSaisie(ArticlePhilatélique p_article) => new DlgSaisieTimbreSeul(TypeDeSaisie.Modification, p_article as TimbreSeul);
public ICommande CréerCommandeAjouter(ArticlePhilatélique p_article) => new CommandeAjoutBC(p_article);
public ICommande CréerCommandeModifier(ArticlePhilatélique p_articleCourant) => new CommandeModificationBC(p_articleCourant as BlocDeCoin);
public ICommande CréerCommandeModifier(ArticlePhilatélique p_articleCourant) => new CommandeModificationTS(p_articleCourant as TimbreSeul);
public ICommande CréerCommandeSupprimer(ArticlePhilatélique p_articleCourant) => new CommandeSuppression(p_articleCourant); // Approche générale
public DlgSaisieBlocDeCoin(TypeDeSaisie ajout, ArticlePhilatélique m_article) : base(ajout, m_article) { InitializeComponent(); InitialiserTitre(ajout); }
public bool ExecuterSQLEnregistrerArticle(OleDbConnection p_bd, ArticlePhilatélique p_article) => SQLEcrireArticle(p_bd, p_article);
public abstract bool SQLEcrireArticle(OleDbConnection p_bd, ArticlePhilatélique p_article);
/*-Opérations CRUD sur les différents articles-*/ /// <summary> /// Ajoute l'article (les observateurs sont ensuite notifiés). /// </summary> /// <param name="p_article">l'article à ajouter</param> public void Ajouter(ArticlePhilatélique p_article) { m_articles.Push(p_article); m_docModifié = true; Notifier(this); }
public FabriqueEtArticle(IFabriqueCommande p_fabrique, ArticlePhilatélique p_article) { Fabrique = p_fabrique; Article = p_article; }