/// <summary>
        /// Constructeur pour le dialogue Saisie Compte
        /// </summary>
        /// <param name="p_typeSaisie">type d'operation</param>
        /// <param name="p_grade">grade de l'utilisateur</param>
        public DlgSaisieCompte(TypeDeSaisie p_typeSaisie, Grade p_grade, Compte p_compte = null)
            : base(p_typeSaisie, p_grade, p_compte)
        {
            InitializeComponent();

            m_typeSaisie = p_typeSaisie;
            m_compte     = p_compte;
            if (p_compte == null && (p_typeSaisie == TypeDeSaisie.Modification ||
                                     p_typeSaisie == TypeDeSaisie.Affichage))
            {
                this.Close();
            }

            if (p_grade != Grade.Capitaine && (p_typeSaisie == TypeDeSaisie.Modification ||
                                               p_typeSaisie == TypeDeSaisie.Ajout))
            {
                MB.Avertir("Vous n\'etes pas autorisés à acceder à cette section");
                this.Close();
            }

            switch (p_typeSaisie)
            {
            case TypeDeSaisie.Ajout: Text = "Ajout d\'un nouveau compte utilisateur"; break;

            case TypeDeSaisie.Modification: Text = "Modification d\'un compte utilisateur"; break;

            case TypeDeSaisie.Affichage: Text = "Information sur le compte #" + p_compte.Matricule; break;
            }
        }
Example #2
0
        protected override bool ChampsValides() // Appelé d'un template method, mais est aussi un TM !
        {
            string motif;

            if (string.IsNullOrEmpty(textBoxMotif.Text) && comboBoxMotifs.SelectedIndex == -1)
            {
                MB.Avertir("Choisir une option de motif ou en saisir un nouveau");
                return(false);
            }

            if (!string.IsNullOrEmpty(textBoxMotif.Text))
            {
                string motifFormaté = Char.ToUpper(textBoxMotif.Text[0]) + textBoxMotif.Text.Substring(1).ToLower();
                motif = motifFormaté;
                Document.Instance.AjouterMotif(motifFormaté);
            }

            else
            {
                motif = comboBoxMotifs.SelectedItem.ToString();
            }

            string tailleEtForme = StringAvecLongueurMinimum(textBoxTailleEtForme, 1, "Taille et forme");

            DateTime?parution = dateTimeParution.Checked ? dateTimeParution.Value : (DateTime?)null;

            double?prixPayé = DoubleAvecMinimumOuNull(textBoxPrixPayé, 0.0, "Prix payé");

            // S'il y en avait beaucoup, il faudrait probablement créer un BaseDeArticlePhilatélique

            return(FinirValidation(motif, tailleEtForme, parution, prixPayé)); // TM...
        }
Example #3
0
        /// <summary>
        /// Menu element : Modifier le mot de passe
        /// </summary>
        private void modifierMotDePasseToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DlgResetPass rp = new DlgResetPass();

            if (rp.ShowDialog() == DialogResult.OK)
            {
                MB.Avertir("Votre mot de passe a été modifié");
            }
        }
        private bool ValidationLogin()
        {
            string user       = StringNonVide(textBoxlogin, "Utilisateur");
            string passHashed = StringNonVide(textBoxPassword, "Mot de passe");
            Compte c          = RequetesSQL.SQLLogin(user, textBoxPassword.Text);

            if (c == null)
            {
                MB.Avertir("Authentification rejetée");
                return(false);
            }
            if (!Hashage.HashValide(textBoxPassword.Text, c.HashPass, HashType.Sha256))
            {
                MB.Avertir("Authentification rejetée");
                return(false);
            }
            return(LoggedUser.OuvrirSession(c.Matricule.ToString()));
        }
Example #5
0
        /// <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);
            }
        }
        protected override bool ChampsValides()
        {
            int?matricule = Int32OuNull(textBoxMatricule, "Matricule");

            if (matricule != null)
            {
                int    numero = (int)matricule;
                Compte compte = RequetesSQL.SQLChercherCompteAvecMatricule(numero);

                if (compte == null)
                {
                    MB.Avertir("Le compte n'existe pas.");
                    return(false);
                }
                else
                {
                    if (compte.Grade != Grade.Détective && (CodeDestination)comboBoxDestination.SelectedItem == CodeDestination.SD)
                    {
                        MB.Avertir("Le matricule n'est pas un détective.");
                        return(false);
                    }
                    if ((compte.Grade != Grade.Lieutenant && compte.Grade != Grade.Capitaine) && (CodeDestination)comboBoxDestination.SelectedItem == CodeDestination.REV)
                    {
                        MB.Avertir("Le matricule n'est pas un lieutenant ni un capitaine.");
                        return(false);
                    }
                }
            }
            else
            {
                if ((CodeDestination)comboBoxDestination.SelectedItem != CodeDestination.ATT &&
                    (CodeDestination)comboBoxDestination.SelectedItem != CodeDestination.BEC &&
                    (CodeDestination)comboBoxDestination.SelectedItem != CodeDestination.ARC)
                {
                    MB.Avertir("Le matricule doit être nul lors d'envoie au BEC, de mise en attente ou lors de l'archivage.");
                    return(false);
                }
            }

            m_destination = new Destination(DateNow(), (CodeDestination)comboBoxDestination.SelectedItem, textBoxRemarque.Text, "", matricule);

            return(true);
        }
        protected override bool ChampsValides()
        {
            StringNonVide(textBoxPassword, "mot de passe actuel");

            if (!Hashage.HashValide(textBoxPassword.Text, LoggedUser.compte.HashPass, HashType.Sha256))
            {
                MB.Avertir("Mot de passe actuel est invalide");
                return(false);
            }

            if (!textBoxNewPassword.Text.Equals(textBoxNewPassword2.Text))
            {
                MB.Avertir("Les champs nouveau mot de passe ne correspondent pas");
                return(false);
            }
            string mdpHash = Hashage.Encrypter(textBoxNewPassword.Text);

            LoggedUser.compte.ModifierPasse(mdpHash);
            return(RequetesSQL.UpdateCompte(LoggedUser.compte));
        }
Example #8
0
        /// <summary>
        /// Menu element : Supprimer un compte
        /// </summary>
        private void supprimerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DlgChoisirCompte choixcompte = new DlgChoisirCompte();

            if (choixcompte.ShowDialog() == DialogResult.OK)
            {
                Compte c = choixcompte.Extraire();
                if (c == null)
                {
                    MB.Avertir("Ce compte n'exist pas");
                }
                else
                {
                    if (MB.ConfirmerOuiNon("Voulez-vous vraiment supprimer définitivement ce compte?"))
                    {
                        RequetesSQL.SupprimerCompte(c.Matricule.ToString());
                    }
                }
            }
        }
        /// <summary>
        /// Reinitiliser un mot de passe oublié
        /// </summary>
        /// <returns>vrai si le changement à reusit</returns>
        ///
        private bool ValidationReset()
        {
            string user  = StringNonVide(textBoxlogin, "Login");
            string email = StringNonVide(textBoxPassword, "Email");
            string passeProvisoirhash;
            Compte c;
            int    matricule = -1;

            // DONE: Verifier si user et email sont presents dans la bd
            matricule = RequetesSQL.ChercherCompteSelonEmail(email);
            c         = RequetesSQL.SQLChercherCompteAvecMatricule(matricule);
            if (matricule != -1)
            {
                if (c == null)
                {
                    return(false);
                }
            }

            // Envoyer un email avec un  mot de passe provisoire
            bool envoie = Utilitaires.sendResetMessage(textBoxPassword.Text, out passeProvisoirhash);

            if (envoie)
            {
                // DONE: ModifierLe hashDans la bd pour ce compte
                c.ModifierPasse(passeProvisoirhash);
                RequetesSQL.SupprimerCompte(c.Matricule.ToString());
                RequetesSQL.AjouterCompte(c);
                MB.Avertir("un message vous est envoyé !");
            }
            else
            {
                MB.Avertir("Un problème est survenu");
            }

            return(envoie);
        }
        protected override bool ChampsValides()
        {
            string nom    = StringNonVide(textBoxNom, "Nom");
            string prénom = StringNonVide(textBoxPrenom, "Prénom");

            DateTime dateNaissance = dateTimePickerNaissance.Value.Date;

            if (dateNaissance >= DateTime.Today)
            {
                MB.Avertir("La date de naissance est supérieur à la date d'aujourd'hui.");
                return(false);
            }

            string       adresse      = StringNonVide(textBoxAdresse, "Adresse");
            CodePersonne codePersonne = (CodePersonne)comboBoxCode.SelectedItem;
            bool         estAjout     = m_typeDeSaisie == TypeDeSaisie.Ajout;

            m_personne = new Personne(estAjout ? Document.Instance.NumProchainePersonne() : m_personne.Numero, nom, prénom, dateNaissance, adresse, codePersonne);
            if (estAjout || m_typeDeSaisie == TypeDeSaisie.Modification)
            {
                RequetesSQL.SQLEnregistrerPersonne(m_personne);
            }
            return(true);
        }
Example #11
0
        /// <summary>
        /// Menu element : Modifier un compte
        /// </summary>
        private void modifierCompteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DlgChoisirCompte choixcompte = new DlgChoisirCompte();

            if (choixcompte.ShowDialog() == DialogResult.OK)
            {
                Compte c = choixcompte.Extraire();
                if (c == null)
                {
                    MB.Avertir("Ce compte n'exist pas");
                }

                DlgSaisieCompte d = new DlgSaisieCompte(TypeDeSaisie.Modification, LoggedUser.compte.Grade, c);
                if (d.ShowDialog() == DialogResult.Cancel)
                {
                    return;
                }
                else
                {
                    c = d.Extraire();
                    RequetesSQL.UpdateCompte(c);
                }
            }
        }
        /// <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);
            }
        }
Example #13
0
        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));
        }