/// <summary> /// Action de bouton Ajouter (Ajouter l'activité) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonAjouterActivite_Click(object sender, EventArgs e) { /// Je récupère la ligne du type d'activité qui me servira plus tard cda27_bd2DataSet.type_activiteRow currentRow = (cda27_bd2DataSet.type_activiteRow)((DataRowView)typeactiviteBindingSource.Current).Row; /// Publier vaut 1 ou 0 si il est coché ou non int publier = checkBoxPublic.Checked ? 1 : 0; /// Je vérifie les champs, si ils sont null ou comportent seulement des espaces if (String.IsNullOrWhiteSpace(textBoxIntituleAct.Text) || String.IsNullOrWhiteSpace(textBoxDescription.Text) || String.IsNullOrWhiteSpace(textBoxTarifAdherent.Text) || String.IsNullOrWhiteSpace(textBoxTarifInvite.Text)) { /// Message d'erreur de champs non remplis MessageBox.Show(Properties.Resources.STR_MESSAGE_CHAMPS_NON_REMPLI, Properties.Resources.STR_TITRE_CHAMPS_NON_REMPLI, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je quitte l'évenement return; } /// Si la date de début est inférieure à la date d'aujourd'hui /// Et si la date de début est supérieure à la date de fin /// Et si la date limite est supérieure à la date de début /// Et si la date limite est supérieure à la date de fin /// Alors dans cet ordre : Date du jour > Date limite > Date début > date de fin if (dateTimePickerDateLimite.Value < DateTime.Now && dateTimePickerDateDebut.Value > dateTimePickerDateFin.Value && dateTimePickerDateLimite.Value > dateTimePickerDateDebut.Value && dateTimePickerDateLimite.Value > dateTimePickerDateFin.Value) { /// Message d'erreur, les dates comportent un problème chronologique MessageBox.Show(Properties.Resources.STR_MESSAGE_DATE_ACT_PROBLEME, Properties.Resources.STR_TITRE_DATE_ACT_PROBLEME, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je quitte l'évenement return; } /// Si le prix adhérent / invité n'est pas correct else if (!IsPrix(textBoxTarifAdherent.Text) || !IsPrix(textBoxTarifInvite.Text)) { /// Message d'erreur MessageBox.Show(Properties.Resources.STR_MESSAGE_TARIF_PROBLEME, Properties.Resources.STR_TITRE_TARIF_PROBLEME, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je quitte l'évenement return; } else if (textBoxDescription.Text.Length > 15000) { MessageBox.Show(Properties.Resources.STR_MESSAGE_DESCRIPTION_PROBLEME, Properties.Resources.STR_TITRE_DESCRIPTION_PROBLEME, MessageBoxButtons.OK, MessageBoxIcon.Information); } /// Si je n'ai pas quitté l'évenement avant, j'insert une activité avec les valeurs correspondantes /// L'IdAdherent sera celui de la secrétaire int nb = activiteTableAdapter.Insert( textBoxIntituleAct.Text, dateTimePickerDateDebut.Value, dateTimePickerDateFin.Value, textBoxDescription.Text, textBoxTarifAdherent.Text, textBoxTarifInvite.Text, dateTimePickerDateLimite.Value, 100, currentRow.IdType, null, publier ); /// Si la requête réussie if (nb == 1) { MessageBox.Show(Properties.Resources.STR_MESSAGE_ACTIVITE_AJOUT_SUCCESS, Properties.Resources.STR_TITRE_ACTIVITE_AJOUT_SUCCESS, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Le LastInsert sera utilisé dans le FormMain pour le repositionnement sur l'activité qui vient de s'ajouter LastInsert = activiteTableAdapter.Adapter.InsertCommand.InsertId; /// IsClose servira dans le MainForm indiquant que la fenêtre va se fermer IsClose = true; /// Je ferme la fenêtre Close(); } /// Sinon, l'ajout ne s'est pas réalisé else { /// Message d'echec MessageBox.Show(Properties.Resources.STR_MESSAGE_PROBLEME_AJOUT_ACT, Properties.Resources.STR_TITRE_PROBLEME_AJOUT_ACT, MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// Action de bouton Modifier (Modifier l'activite) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonModifierActivite_Click(object sender, EventArgs e) { /// Je récupère le BindingSource des types d'activité cda27_bd2DataSet.type_activiteRow currentRow = (cda27_bd2DataSet.type_activiteRow)((DataRowView)typeactiviteBindingSource.Current).Row; /// Si publier est coché alors il vaut 1 sinon il vaut 0 int publier = checkBoxPublic.Checked ? 1 : 0; /// Je vérifie que tous les champs ne sont pas null ou comportent des espaces if (String.IsNullOrWhiteSpace(textBoxIntituleAct.Text) || String.IsNullOrWhiteSpace(textBoxDescription.Text) || String.IsNullOrWhiteSpace(textBoxTarifAdherent.Text) || String.IsNullOrWhiteSpace(textBoxTarifInvite.Text)) { /// Si ce n'est pas le cas j'affiche un message d'erreur /// Les champs ne sont pas remplis MessageBox.Show(Properties.Resources.STR_MESSAGE_CHAMPS_NON_REMPLI, Properties.Resources.STR_TITRE_CHAMPS_NON_REMPLI, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je quitte l'évenement return; } /// Si la date de début est inférieure à la date d'aujourd'hui /// Et si la date de début est supérieure à la date de fin /// Et si la date limite est supérieure à la date de début /// Et si la date limite est supérieure à la date de fin /// Alors dans cet ordre : Date du jour > Date limite > Date début > date de fin if (dateTimePickerDateLimite.Value < DateTime.Now && dateTimePickerDateDebut.Value > dateTimePickerDateFin.Value && dateTimePickerDateLimite.Value > dateTimePickerDateDebut.Value && dateTimePickerDateLimite.Value > dateTimePickerDateFin.Value) { /// Affichage d'un message "problème de chronologie des dates" MessageBox.Show(Properties.Resources.STR_MESSAGE_DATE_ACT_PROBLEME, Properties.Resources.STR_TITRE_DATE_ACT_PROBLEME, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je quitte l'évenement return; } /// Vérification des prix Adhérents / Invités par une Regex (expression régulière) else if (!IsPrix(textBoxTarifAdherent.Text) || !IsPrix(textBoxTarifInvite.Text)) { /// Si le test échoue, j'affiche un message d'erreur de tarif MessageBox.Show(Properties.Resources.STR_MESSAGE_TARIF_PROBLEME, Properties.Resources.STR_TITRE_TARIF_PROBLEME, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je quitte l'événement return; } else if (textBoxDescription.Text.Length > 15000) { MessageBox.Show(Properties.Resources.STR_MESSAGE_DESCRIPTION_PROBLEME, Properties.Resources.STR_TITRE_DESCRIPTION_PROBLEME, MessageBoxButtons.OK, MessageBoxIcon.Information); } /// J'exécute la requête d'update avec les valeurs nouvelles, /// l'IdAdherent sera la secrétaire, /// les valeurs anciennes seront celle du CurrentRow de la FormMain int nb = activiteTableAdapter.Update( textBoxIntituleAct.Text, dateTimePickerDateDebut.Value, dateTimePickerDateFin.Value, textBoxDescription.Text, textBoxTarifAdherent.Text, textBoxTarifInvite.Text, dateTimePickerDateLimite.Value, 100, currentRow.IdType, null, publier, currentRowAdh.IdActivite, currentRowAdh.Intitulé, currentRowAdh.Date_de_début, currentRowAdh.Date_de_fin, currentRowAdh.Description, currentRowAdh.Tarif_adhérent, currentRowAdh.Tarif_invité, currentRowAdh._Date_limite_d_inscription, currentRowAdh.IdAdherent, currentRowAdh.IdType, currentRowAdh.Publié ); /// Si la requête échoue if (nb == 0) { /// J'affiche un message : Mise à jour non réalisée MessageBox.Show(Properties.Resources.STR_MESSAGE_MAJ_NON_REALISEE, Properties.Resources.STR_TITRE_MAJ_NON_REALISEE, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je quitte l'évenement return; } else { /// J'affiche un message : Mise à jour non réalisée MessageBox.Show(Properties.Resources.STR_MESSAGE_MAJ_OK, Properties.Resources.STR_TITRE_MAJ_OK, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Je mets en variable l'IdActivité pour me repositionner dans le fenêtre main sur l'activité précédemment séléctionnée LastInsert = currentRowAdh.IdActivite; /// IsClose me servira pour savoir que la fenêtre va se fermer dans le FormMain IsClose = true; /// Je ferme la fenêtre Close(); } }