示例#1
0
        /// <summary>
        /// Charge les dossiers associé au compte dans la table dossier_policier
        /// </summary>
        private void ChargerDossierCompte()
        {
            dataGridViewDossier.Rows.Clear();
            List <Dossier> list = RequetesSQL.SQLChercherDossierAvecMatricule(LoggedUser.compte.Matricule);

            ChargerDossierAfficher(list);
        }
示例#2
0
        /// <summary>
        /// Boutton : Afficher tous les dossiers
        /// </summary>
        private void buttonTousLesDossiers_Click(object sender, EventArgs e)
        {
            EnleverCouleurFiltre();
            buttonTousLesDossiers.BackColor = Color.LightGray;
            List <Dossier> list = RequetesSQL.SQLTousLesDossiers();

            ChargerDossierAfficher(list);
        }
示例#3
0
        /// <summary>
        /// Boutton : Afficher dossiers avec destination BEC
        /// </summary>
        private void buttonDossierBECSeulement_Click(object sender, EventArgs e)
        {
            EnleverCouleurFiltre();
            buttonDossierBECSeulement.BackColor = Color.LightGray;
            List <Dossier> list = RequetesSQL.SQLChercherDossierBEC();

            ChargerDossierAfficher(list);
        }
示例#4
0
 protected override bool ChampsValides()
 {
     if (RequetesSQL.SQLLireCompte(textBoxCompteId.Text) != null)
     {
         return(true);
     }
     return(false);
 }
示例#5
0
 private void AffichageEtiquete(string p_noDossier, int p_matricule)
 {
     checkBoxEtiquete.Checked = false;
     if (p_noDossier != null)
     {
         checkBoxEtiquete.Checked = RequetesSQL.SQLVerifierEtiquete(p_noDossier, p_matricule);
     }
 }
示例#6
0
        /// <summary>
        /// Boutton : Afficher dossiers ouverts
        /// </summary>
        private void buttonDossierOuvertSeulement_Click(object sender, EventArgs e)
        {
            EnleverCouleurFiltre();
            buttonDossierOuvertSeulement.BackColor = Color.LightGray;
            List <Dossier> list = RequetesSQL.SQLChercherDossierOuvert(LoggedUser.compte.Matricule);

            ChargerDossierAfficher(list);
        }
示例#7
0
 public static bool OuvrirSession(string p_matricule)
 {
     try
     {
         compte = RequetesSQL.SQLLireCompte(p_matricule);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
示例#8
0
        /// <summary>
        /// Initialise le data grid view avec les données sur l'historique du dossier.
        /// </summary>
        private void InitialiserDataGridView()
        {
            List <Destination> destinations = RequetesSQL.SQLChercherListeDestinationNoDossier(m_noDossier);

            foreach (Destination destination in destinations)
            {
                dataGridViewDest.Rows.Add(destination.HeureTransfer.ToString(), destination.CodeDestination,
                                          destination.Remarque, destination.NumeroDossier, destination.MatriculePolicier);
            }

            dataGridViewDest.Sort(ColDateHeur, ListSortDirection.Descending); //Tri les données pour que le plus récent soit en haut
        }
示例#9
0
        /// <summary>
        /// Menu element : Ajouter un dossier
        /// </summary>
        private void ajouterToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            DlgAjoutDossier d = new DlgAjoutDossier(TypeDeSaisie.Ajout, null);

            d.ShowDialog();

            if (d.DialogResult == DialogResult.OK)
            {
                Dossier dossier = d.Extraire();
                RequetesSQL.SQLEnregistrerDossier(dossier);
                ChargerDossierCompte();
            }
        }
示例#10
0
        /// <summary>
        /// Menu element : Ajouter un compte
        /// </summary>
        private void ajouterCompteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DlgSaisieCompte d = new DlgSaisieCompte(TypeDeSaisie.Ajout, LoggedUser.compte.Grade);

            if (d.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            else
            {
                RequetesSQL.AjouterCompte(d.Extraire());
            }
        }
示例#11
0
        /// <summary>
        /// Méthode d'initialisation des controles du Dlg
        /// </summary>
        private void InitialiserLesControles()
        {
            BoutonOK.Enabled = false;
            List <Compte> ComptesDisponibles;

            ComptesDisponibles = RequetesSQL.ListeTousLesComptes().ToList();

            foreach (Compte compte in ComptesDisponibles)
            {
                string texte = String.Concat(compte.Matricule + " " + compte.Nom + " " + compte.Prenom + " " + compte.Grade);
                listBoxTousLesComptes.Items.Add(new PaireIS(compte.Matricule, texte));
            }
        }
示例#12
0
 private void EnregistrerEtiquete(string p_noDossier, int p_matricule)
 {
     if (p_noDossier != null)
     {
         if (checkBoxEtiquete.Checked)
         {
             RequetesSQL.SQLAjouterEtiquete(p_noDossier, p_matricule);
         }
         else
         {
             RequetesSQL.SQLSupprimerEtiquete(p_noDossier, p_matricule);
         }
     }
 }
示例#13
0
 /// <summary>
 /// DataGrid : Dossiers
 /// </summary>
 private void dataGridViewDossier_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         Dossier         dossier = RequetesSQL.SQLChercherDossierParNumero(dataGridViewDossier.Rows[e.RowIndex].Cells[0].Value.ToString());
         DlgAjoutDossier d       = new DlgAjoutDossier(TypeDeSaisie.Modification, dossier);
         d.ShowDialog();
         if (d.DialogResult == DialogResult.OK)
         {
             RequetesSQL.SQLEnregistrerDossier(d.Extraire());
             ChargerDossierCompte();
         }
     }
     catch (Exception excep) { Console.WriteLine("Réessayez svp"); }
 }
示例#14
0
        private Document()
        {
            try
            {
                RequetesSQL.Connecterbd(strAccessConn);
            }
            catch
            {
                MB.AvertirCritique("La lecture de « {0} » a échoué.\n" +
                                   "Le programme va s'arrêter.\n",
                                   NomFichierDonnees);

                Environment.Exit(0);  // Permet d'arrêter le programme directement.
            }
        }
示例#15
0
        /// <summary>
        /// Boutton : Etiquete
        /// </summary>
        private void buttonEtiquete_Click(object sender, EventArgs e)
        {
            EnleverCouleurFiltre();
            List <Dossier> list = RequetesSQL.SQLChercherDossierAvecMatricule(LoggedUser.compte.Matricule);

            buttonEtiquete.BackColor = Color.LightGray;
            List <Dossier> list1 = new List <Dossier>();

            foreach (Dossier d in list)
            {
                if (RequetesSQL.SQLVerifierEtiquete(d.Numero, LoggedUser.compte.Matricule))
                {
                    list1.Add(d);
                }
            }
            ChargerDossierAfficher(list1);
        }
示例#16
0
        protected override bool ChampsValides()
        {
            //Itération 2 mettre suggestions
            string marque = StringNonVide(textBoxMarque, "Marque");
            string modele = StringNonVide(textBoxModele, "modèle");
            int    annee  = Int32DansIntervalle(textBoxAnnee, 1800,
                                                DateTime.Today.Year + 3, "Année"); // 3 ans de plus pour les prototypes.
            CodeVehicule codeVehicule = (CodeVehicule)comboBoxStatut.SelectedItem;
            Personne     proprietaire = (Personne)comboBoxPersonne.SelectedItem;
            bool         estAjout     = m_typeDeSaisie == TypeDeSaisie.Ajout;

            m_vehicule = new Vehicule(estAjout ? Document.Instance.NumProchainVehicule() : m_vehicule.NoVehicule, marque, modele, annee, codeVehicule, proprietaire);
            if (estAjout)
            {
                RequetesSQL.SQLEnregistrerVehicule(m_vehicule);
            }
            return(true);
        }
        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()));
        }
        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));
        }
示例#20
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);
        }
示例#23
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);
                }
            }
        }
示例#24
0
 public int NumProchainCompteSansAugmenter()
 => RequetesSQL.numeroCompteSansIncrementer();
示例#25
0
 private void textBoxCompteId_TextChanged(object sender, EventArgs e)
 {
     BoutonOK.Enabled = IsDigitsOnly(textBoxCompteId.Text) && RequetesSQL.SQLLireCompte(textBoxCompteId.Text) != null;
 }
示例#26
0
 public Compte Extraire()
 => RequetesSQL.SQLLireCompte(textBoxCompteId.Text == "" ? listBoxTousLesComptes.SelectedItem.GetHashCode().ToString() : textBoxCompteId.Text);
示例#27
0
 public int NumProchainRapport()
 => RequetesSQL.SQLLireNumeroRapport();
示例#28
0
 /// <summary>
 /// Termine l'accès aux données et s'assure qu'elles sont bien enregistrées (un message est affichée
 /// si ce n'est pas le cas).
 /// </summary>
 public void Fermer()
 {
     RequetesSQL.FermerBD(); // Deconnecter a la base de données}
 }
 public List <Destination> getHistoriqueDestination()
 {
     return(RequetesSQL.SQLChercherListeDestinationNoDossier(Numero));
 }
示例#30
0
        // Evenement : colorer nouvelle ligne ajoutée selon destination du dossier
        private void dataGridViewDossier_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            Dossier dossier = RequetesSQL.SQLChercherDossierParNumero(dataGridViewDossier.Rows[e.RowIndex].Cells[0].Value.ToString());

            dataGridViewDossier.Rows[e.RowIndex].DefaultCellStyle.BackColor = PickColorForDossierRow(dossier.Destination.CodeDestination);
        }