/// <summary> /// Permet d'intercepter le click sur le bouton d'enregistrement d'un bénévole. /// Cetteméthode va appeler la méthode InscrireBenevole de la Bdd, après avoir mis en forme certains paramètres à envoyer. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnEnregistreBenevole_Click(object sender, EventArgs e) { Collection <Int16> IdDatesSelectionnees = new Collection <Int16>(); Int64?NumeroLicence; if (TxtLicenceBenevole.MaskCompleted) { NumeroLicence = System.Convert.ToInt64(TxtLicenceBenevole.Text); } else { NumeroLicence = null; } foreach (Control UnControle in PanelDispoBenevole.Controls) { if (UnControle.GetType().Name == "CheckBox" && ((CheckBox)UnControle).Checked) { /* Un name de controle est toujours formé come ceci : xxx_Id où id représente l'id dans la table * Donc on splite la chaine et on récupére le deuxième élément qui correspond à l'id de l'élément sélectionné. * on rajoute cet id dans la collection des id des dates sélectionnées * */ IdDatesSelectionnees.Add(System.Convert.ToInt16((UnControle.Name.Split('_'))[1])); } } UneConnexion.InscrireBenevole(TxtNom.Text, TxtPrenom.Text, TxtAdr1.Text, TxtAdr2.Text != "" ? TxtAdr2.Text : null, TxtCp.Text, TxtVille.Text, txtTel.MaskCompleted ? txtTel.Text : null, TxtMail.Text != "" ? TxtMail.Text : null, System.Convert.ToDateTime(TxtDateNaissance.Text), NumeroLicence, IdDatesSelectionnees); }
/// <summary> /// Cette procédure va appeler la procédure .... qui aura pour but d'enregistrer les éléments /// de l'inscription d'un intervenant, avec éventuellement les nuités à prendre en compte /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnEnregistrerIntervenant_Click(object sender, EventArgs e) { try { if (RdbNuiteIntervenantOui.Checked) { // inscription avec les nuitées Collection <Int16> NuitsSelectionnes = new Collection <Int16>(); Collection <String> HotelsSelectionnes = new Collection <String>(); Collection <String> CategoriesSelectionnees = new Collection <string>(); foreach (Control UnControle in PanNuiteIntervenant.Controls) { if (UnControle.GetType().Name == "ResaNuite" && ((ResaNuite)UnControle).GetNuitSelectionnee()) { // la nuité a été cochée, il faut donc envoyer l'hotel et le type de chambre à la procédure de la base qui va enregistrer le contenu hébergement //ContenuUnHebergement UnContenuUnHebergement= new ContenuUnHebergement(); CategoriesSelectionnees.Add(((ResaNuite)UnControle).GetTypeChambreSelectionnee()); HotelsSelectionnes.Add(((ResaNuite)UnControle).GetHotelSelectionne()); NuitsSelectionnes.Add(((ResaNuite)UnControle).IdNuite); Utilitaire.EffacerInfos(TabInscription); RdbNuiteIntervenantNon.Checked = true; RadIntervenant.Checked = true; } } if (NuitsSelectionnes.Count == 0) { MessageBox.Show("Si vous avez sélectionné que l'intervenant avait des nuités\n in faut qu'au moins une nuit soit sélectionnée"); } else { UneConnexion.InscrireIntervenant(TxtNom.Text, TxtPrenom.Text, TxtAdr1.Text, TxtAdr2.Text != "" ? TxtAdr2.Text : "", TxtCp.Text, TxtVille.Text, txtTel.MaskCompleted ? txtTel.Text : "", TxtMail.Text != "" ? TxtMail.Text : "", System.Convert.ToInt16(CmbAtelierIntervenant.SelectedValue), this.IdStatutSelectionne, CategoriesSelectionnees, HotelsSelectionnes, NuitsSelectionnes); MessageBox.Show("Inscription intervenant avec nuitées effectuée"); Utilitaire.EffacerInfos(TabInscription); RdbNuiteIntervenantNon.Checked = true; RadIntervenant.Checked = true; } } else { // inscription sans les nuitées UneConnexion.InscrireIntervenant(TxtNom.Text, TxtPrenom.Text, TxtAdr1.Text, TxtAdr2.Text != "" ? TxtAdr2.Text : "", TxtCp.Text, TxtVille.Text, txtTel.MaskCompleted ? txtTel.Text :"", TxtMail.Text != "" ? TxtMail.Text : "", System.Convert.ToInt16(CmbAtelierIntervenant.SelectedValue), this.IdStatutSelectionne); MessageBox.Show("Inscription intervenant sans nuitée effectuée"); Utilitaire.EffacerInfos(TabInscription); RdbNuiteIntervenantNon.Checked = true; RadIntervenant.Checked = true; } } catch (Exception Ex) { MessageBox.Show(Ex.Message); } }
/// <summary> /// Cette fonction va compter le nombre de controles types CheckBox qui sont cochées contenus dans la collection controls /// du container passé en paramètre /// </summary> /// <param name="UnControl"> le container sur lequel on va compter les controles de type checkbox qui sont checked</param> /// <returns>nombre de checkbox cochées</returns> internal static int CompteChecked(ScrollableControl UnContainer) { Int16 i = 0; foreach (Control UnControle in UnContainer.Controls) { if (UnControle.GetType().Name == "CheckBox" && ((CheckBox)UnControle).Checked) { i++; } } return(i); }
/// <summary> /// procédure permettant d'afficher l'interface de saisie des disponibilités des bénévoles. /// </summary> private void GererInscriptionBenevole() { PanelBenevole.Visible = true; PanelIntervenant.Visible = false; Utilitaire.CreerDesControles(this, UneConnexion, "VDATEBENEVOLAT01", "ChkDateB_", PanelDispoBenevole, "MetroCheckBox", this.rdbStatutIntervenant_StateChanged); // on va tester si le controle à placer est de type CheckBox afin de lui placer un événement checked_changed // Ceci afin de désactiver les boutons si aucune case à cocher du container n'est cochée foreach (Control UnControle in PanelDispoBenevole.Controls) { if (UnControle.GetType().Name == "MetroCheckBox") { MetroCheckBox UneCheckBox = (MetroCheckBox)UnControle; UneCheckBox.CheckedChanged += new System.EventHandler(this.ChkDateBenevole_CheckedChanged); } } }