/// <summary> /// Constructeur d'un rapport d'évènement. /// </summary> /// <param name="p_codeDeNature">Code de nature du rapport.</param> /// <param name="p_dateEtHeure">Date et heure de l'évènement.</param> /// <param name="p_adresse">Adresse de l'évènement.</param> /// <param name="p_remarques">Remarques du policier répondant.</param> public RapportEvenement(CodeDeNature p_codeDeNature, DateTime p_dateEtHeure, Adresse p_adresse, string p_remarques) { CodeDeNature = p_codeDeNature; DateEtHeure = p_dateEtHeure; Adresse = p_adresse; Remarques = p_remarques; }
/// <summary> /// Constructeur d'un rapport d'accident. /// </summary> /// <param name="p_numero">Numéro du dossier lié.</param> /// <param name="p_vehiculesImpliques">Liste des véhicules impliqués.</param> /// <param name="p_adresse">Adresse de l'accident.</param> /// <param name="p_dateEtHeure">Date et heure de l'accident</param> /// <param name="p_remarques">Remarques du policier sur les lieux.</param> public RapportAccident(int p_numero, List <Vehicule> p_vehiculesImpliques, Adresse p_adresse, DateTime p_dateEtHeure, string p_remarques) { NoRapport = p_numero; VehiculesImpliques = p_vehiculesImpliques; Adresse = p_adresse; DateEtHeure = p_dateEtHeure; Remarques = p_remarques; }
/// <summary> /// Finir la validations des champs. Tous les champs de base sont validées dans BglCompte /// </summary> /// <returns>Vrai quand tous les champs sont valides</returns> public override bool FinirValidation(string p_prenom, string p_nom, int p_matricule, DateTime p_naissance, Adresse p_adresse, string p_tel, string p_email, Grade p_grade, string p_mdpHash) { compte = new Compte(p_prenom, p_nom, (m_typeSaisie == TypeDeSaisie.Affichage || m_typeSaisie == TypeDeSaisie.Modification) ? m_compte.Matricule : Document.Instance.NumProchainCompte(), p_naissance, p_adresse, p_tel, p_email, p_grade, p_mdpHash); return(true); }
/// <summary> /// Constructeur Compte /// </summary> public Compte(string p_prenom, string p_nom, int p_matricule, DateTime p_naissance, Adresse p_adresse, string p_telephone, string p_email, Grade p_grade, string p_hashpass64) { Nom = p_nom; Prenom = p_prenom; Matricule = p_matricule; Grade = p_grade; Naissance = p_naissance; Adrss = p_adresse; Telephone = p_telephone; Email = p_email; HashPass = p_hashpass64; noDossierImportants = new List <string>(); }
/// <summary> /// Vérifie la validité des informations entrées dans les champs de saisie. /// </summary> /// <returns>true si les informations sont valides, false sinon.</returns> protected override bool ChampsValides() { if (!CodeDeNature.TousLesCodesDeNature.Contains((CodeDeNature)comboBoxCodeDeNature.SelectedItem)) { MB.Avertir("Le code de nature sélectionné n'existe pas."); return(false); } if (dateTimePicker.Value > DateTime.Now) { MB.Avertir("La date et heure doit être inférieur à la date et heure actuelle."); return(false); } try { DateTime dateEtHeure = dateTimePicker.Value; CodeDeNature codeDeNature = (CodeDeNature)comboBoxCodeDeNature.SelectedItem; string noCivique = StringNonVide(textBoxNoCivique, "numéro civique"); string rue = StringNonVide(textBoxRue, "rue"); string codePostal = StringNonVide(textBoxCodePostal, "code postal").Trim().ToUpper(); Regex regexCodePostal = new Regex("^[A-Z][0-9][A-Z][ ]?[0-9][A-Z][0-9]$"); if (!regexCodePostal.IsMatch(codePostal)) { MB.Avertir("Le code postal doit avoir le format suivant « A1A1A1 » ou « A1A 1A1 »."); return(false); } string ville = StringNonVide(textBoxVille, "ville"); string province = StringNonVide(comboBoxProvince, "province"); string pays = StringNonVide(textBoxPays, "pays"); Adresse adresse = new Adresse(rue, ville, province, codePostal, pays, noCivique); string remarques = textBoxRemarques.Text.Trim(); // peut être vide m_rapportEvenement = new RapportEvenement(codeDeNature, dateEtHeure, adresse, remarques); return(true); } catch (ErreurExtraction) { // L'utilisateur n'a pas bien rempli le formulaire. return(false); } }
/// <summary> /// Détermine si les informations saisies sont valides. /// </summary> /// <returns>True si les informations sont valides, false sinon.</returns> protected override bool ChampsValides() { List <Vehicule> vehiculesImpliques = new List <Vehicule>(); foreach (DataGridViewRow ligneCourante in dataGridViewVehiculesInclusDansRapport.Rows) { Vehicule vehiculeCourant = m_vehiculesDuDossier.Find(v => v.Marque == ligneCourante.Cells[(int)ColonneVoiture.Marque].Value && v.Modele == ligneCourante.Cells[(int)ColonneVoiture.Modele].Value && v.NoVehicule == (int)ligneCourante.Cells[(int)ColonneVoiture.NoVehicule].Value && v.Annee == (int)ligneCourante.Cells[(int)ColonneVoiture.Annee].Value && v.CodeVehicule == (CodeVehicule)ligneCourante.Cells[(int)ColonneVoiture.Statut].Value /*&& * v.Proprietaire == (Personne)ligneCourante.Cells[(int)IndexColonnes.Proprietaire].Value*/); Debug.Assert(vehiculeCourant != null, "Le véhicule sélectionné n'existe pas."); if (vehiculeCourant != null) { vehiculesImpliques.Add(vehiculeCourant); } } if (vehiculesImpliques.Count < 1) { MB.Avertir("Il doit y avoir au moins un véhicule impliqué dans le rapport d'accident."); return(false); } try { string noCivique = StringNonVide(textBoxNoCivique, "numéro civique"); string rue = StringNonVide(textBoxRue, "rue"); string codePostal = StringNonVide(textBoxCodePostal, "code postal").Trim().ToUpper(); Regex regexCodePostal = new Regex("^[A-Z][0-9][A-Z][ ]?[0-9][A-Z][0-9]$"); if (!regexCodePostal.IsMatch(codePostal)) { MB.Avertir("Le code postal doit avoir le format suivant « A1A1A1 » ou « A1A 1A1 »."); return(false); } string ville = StringNonVide(textBoxVille, "ville"); string province = StringNonVide(comboBoxProvince, "province"); string pays = StringNonVide(textBoxPays, "pays"); Adresse adresse = new Adresse(rue, ville, province, codePostal, pays, noCivique); if (dateTimePicker.Value > DateTime.Now) { MB.Avertir("La date et heure doit être inférieur à la date et heure actuelle."); return(false); } DateTime dateEtHeure = dateTimePicker.Value; string remarques = StringNonVide(textBoxRemarques, "remarques"); m_rapportAccident = new RapportAccident(Document.Instance.NumProchainRapport(), vehiculesImpliques, adresse, dateEtHeure, remarques); return(true); } catch (ErreurExtraction p_erreurEntreeUtilisateur) { // L'utilisateur n'a pas bien rempli le formulaire. return(false); } }
// Pour Template Method ChampsValides, Doit être définie dans la classe dérivée public virtual bool FinirValidation(string p_prenom, string p_nom, int p_matricule, DateTime p_naissance, Adresse p_adresse, string p_tel, string p_email, Grade p_grade, string p_mdpHash) { throw new NotImplementedException(); // Doit être définie dans la classe dérivée (devait être } // abstraite mais on ne peut pas pour l'éditeur visuel)
protected override bool ChampsValides() { // Valider les champs string nom = StringNonVide(textBoxNom, "Nom"); string prenom = StringNonVide(textBoxPrenom, "Prénom"); DateTime naissance = dateTimePickerNaissance.Value; if (naissance.Year < DateTime.Today.Year - AGE_MAX_COMPTE || naissance.Year > DateTime.Today.Year - AGE_MIN_COMPTE) { MB.Avertir("L\'age de l\'utilisateur est invalide."); ActiveControl = dateTimePickerNaissance; return(false); } // Adresse string rue = StringNonVide(textBoxAdresse, "Adresse"); string ville = StringNonVide(textBoxVille, "Ville"); string etat = StringNonVide(textBoxEtat, "Etat"); string codePostal = StringNonVide(textBoxCodePostal, "Zip"); Adresse adresse = new Adresse(rue, ville, etat, codePostal); // Contact string tel = StringNonVide(textBoxTelephone, "Telephone"); if (!Utilitaires.IsValidePhone(textBoxTelephone.Text)) { MB.Avertir("Telephone invalide."); return(false); } string email = StringNonVide(textBoxEmail, "Email"); if (!Utilitaires.IsValidEmail(textBoxEmail.Text)) { MB.Avertir("Email invalide."); return(false); } // Grade, matricule Grade grade; if (Enum.IsDefined(typeof(Grade), comboBoxGrade.SelectedIndex)) { grade = (Grade)comboBoxGrade.SelectedIndex; } else { MB.Avertir("Le Grade assigné est invalide."); ActiveControl = comboBoxGrade; return(false); } int matricule = Int32AvecMinimum(textBoxMatricule, 1, "Matricule"); // Password string mdpHash; if (checkBoxEnableEditPass.Checked || typeSaisie == TypeDeSaisie.Ajout) { StringNonVide(textBoxPassword, "mot de passe"); if (!textBoxPassword.Text.Equals(textBoxPassword2.Text)) { MB.Avertir("Les champs mot de passe ne correspondent pas"); return(false); } mdpHash = Hashage.Encrypter(textBoxPassword.Text); } else { mdpHash = compte.HashPass; // ne pas changer le mot de passe, si le champs n'est pas modifé } // Finir la validation return(FinirValidation(prenom, nom, matricule, naissance, adresse, tel, email, grade, mdpHash)); }