private void SendEmpreinte()
        {
            string ip   = txt_ip.Text.Trim();
            int    port = (int)txt_port.Value;

            if (ip == serveur.Adresse && port == serveur.Port)
            {
                Utils.WriteLog("Envoi de(s) empreinte(s) sur le serveur " + ip + " [" + port + "] impossible... car le serveur distant est identique au serveur dedié");
            }
            else
            {
                if (F_parent.empreintes != null ? F_parent.empreintes.Count > 0 : false)
                {
                    Utils.WriteLog("Demande de l'envoi de(s) empreinte(s) sur le serveur " + ip + " [" + port + "]");
                    if (Messages.Confirmation("envoyer les empreintes sur le serveur distant") == System.Windows.Forms.DialogResult.Yes)
                    {
                        serveur.Adresse = ip;
                        Npgsql.NpgsqlConnection con = null;
                        if (new Connexion().isConnection(out con, serveur))
                        {
                            foreach (Empreinte em in F_parent.empreintes)
                            {
                                Finger    d  = (Finger)Finger.Get(em.Digital);
                                Empreinte e_ = EmpreinteBLL.OneByEmployeFinger(em.Employe.Id, em.Digital, con);
                                if (e_ != null ? e_.Id < 1 : true)
                                {
                                    if (EmpreinteBLL.Insert(em, con))
                                    {
                                        Utils.WriteLog("---- Envoi de l'empreinte de l'employé " + em.Employe.NomPrenom + " du doigt (" + d.Doigt + ") de la main (" + d.Main + ") sur le serveur " + ip + " [" + port + "] effectué");
                                    }
                                }
                                else
                                {
                                    Utils.WriteLog("---- Envoi de l'empreinte de l'employé " + em.Employe.NomPrenom + " du doigt (" + d.Doigt + ") de la main (" + d.Main + ") sur le serveur " + ip + " [" + port + "] impossible... car il existe déja");
                                }
                            }
                            Utils.WriteLog("-- Envoi de(s) empreinte(s) sur le serveur " + ip + " [" + port + "] effectué");
                        }
                        else
                        {
                            Utils.WriteLog("-- Envoi de(s) empreinte(s) sur le serveur " + ip + " [" + port + "] impossible... car connexion au serveur impossible");
                        }
                    }
                    else
                    {
                        Utils.WriteLog("-- Envoi de(s) empreinte(s) sur le serveur " + ip + " [" + port + "] annulé");
                    }
                    ObjectThread o = new ObjectThread(this);
                    o.DisposeForm(true);
                }
                else
                {
                    Utils.WriteLog("Envoi de(s) empreinte(s) sur le serveur " + ip + " [" + port + "] impossible... car la liste des empreintes ne peut pas etre vide");
                }
            }
        }
        private void Download()
        {
            Utils.WriteLog("-- Début du téléchargement des empreintes");
            ObjectThread o = new ObjectThread(Constantes.PBAR_WAIT);

            o.UpdateMaxBar(empreintes.Count);
            foreach (Empreinte e in empreintes)
            {
                Employe y = EmployeBLL.OneById((int)e.Employe.Id);
                if (y != null ? y.Id > 0 : false)
                {
                    if (IS_DIGITAL)
                    {
                        Empreinte e_ = EmpreinteBLL.OneByEmployeFinger(e.Employe.Id, e.Digital);
                        if (e_ != null ? e_.Id < 1 : true)
                        {
                            if (EmpreinteBLL.Insert(e))
                            {
                                Finger f = (Finger)Finger.Get(e.Digital);
                                Utils.WriteLog("---- Ajout de l'empreinte Doigt(" + f.Doigt + ") Main(" + f.Main + ")  de l'employé " + e.Employe.NomPrenom + " effectue!");
                            }
                            else
                            {
                                Utils.WriteLog("---- Ajout de l'empreinte de l'employé " + e.Employe.NomPrenom + " echoué!");
                            }
                        }
                    }
                    else
                    {
                        Empreinte e_ = EmpreinteBLL.OneByEmployeFacial(e.Employe.Id, e.Facial);
                        if (e_ != null ? e_.Id < 1 : true)
                        {
                            if (EmpreinteBLL.Insert(e))
                            {
                                Utils.WriteLog("---- Ajout de l'empreinte faciale de l'employé " + e.Employe.NomPrenom + " effectue!");
                            }
                            else
                            {
                                Utils.WriteLog("---- Ajout de l'empreinte de l'employé " + e.Employe.NomPrenom + " echoué!");
                            }
                        }
                    }
                }
                else
                {
                    Utils.WriteLog("---- Ajout de l'empreinte de l'employé " + e.Employe.NomPrenom + " echoué! Car ce tiers n'est pas un employé");
                }
                Constantes.LoadPatience(false);
            }
            Utils.WriteLog("-- Fin du téléchargement des empreintes");
            Constantes.LoadPatience(true);
        }
        private void dgv_empreinte_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (dgv_empreinte.CurrentRow.Cells["id_em"].Value != null)
                {
                    int id = Convert.ToInt32(dgv_empreinte.CurrentRow.Cells["id_em"].Value);
                    if (!IS_INFOS ? (id > 0) : true)
                    {
                        Empreinte p = le.Find(x => x.Id == id);
                        if (p != null ? (!IS_INFOS ? p.Id > 0 : true) : false)
                        {
                            int          pos = Utils.GetRowData(dgv_empreinte, id);
                            ObjectThread o   = new ObjectThread(dgv_empreinte);
                            o.RemoveDataGridView(pos);

                            Empreinte p_ = empreintes.Find(x => x.Id == p.Id);
                            if (p_ != null ? (!IS_INFOS ? p_.Id > 0 : true) : false)
                            {
                                empreintes.RemoveAt(empreintes.FindIndex(x => x.Id == p.Id));
                                Finger f = (Finger)Finger.Get(p.Digital);
                                o.WriteDataGridView(pos, new object[] { p.Id, false, pos + 1, p.Employe.Id, p.Employe.NomPrenom, f.Main, f.Doigt });
                            }
                            else
                            {
                                empreintes.Add(p);
                                Finger f = (Finger)Finger.Get(p.Digital);
                                o.WriteDataGridView(pos, new object[] { p.Id, true, pos + 1, p.Employe.Id, p.Employe.NomPrenom, f.Main, f.Doigt });
                            }
                            ResetDataEmpreinte_();
                            dgv_empreinte.Rows[pos].Selected = true;
                        }
                    }
                    else
                    {
                        ResetDataDestination();
                    }
                }
            }
            catch (Exception ex)
            {
                Messages.Exception("Form_Empreinte (dgv_destination_CellContentClick) ", ex);
            }
        }
        private void LoadEmpreinte(List <Empreinte> l)
        {
            ObjectThread o = new ObjectThread(dgv_empreinte);

            o.ClearDataGridView(true);
            ObjectThread o_ = new ObjectThread(Constantes.PBAR_WAIT);

            o_.UpdateMaxBar(Constantes.PBAR_WAIT.Maximum + l.Count);
            int i = 1;

            foreach (Empreinte e in l)
            {
                Finger f = (Finger)Finger.Get(e.Digital);
                o.WriteDataGridView(new object[] { e.Id, false, i, e.Employe.Id, e.Employe.NomPrenom, f.Main, f.Doigt });
                i++;
                Constantes.LoadPatience(false);
            }
            Constantes.LoadPatience(true);
        }
        private void RecupererInformation(Appareil z, Empreinte y)
        {
            if (y != null ? y.Id > 0 : false)
            {
                Employe emp = EmployeBLL.OneById((int)y.Employe.Id);
                if (emp != null ? emp.Id > 0 : false)
                {
                    bool correct = false;
                    switch (currentPointeuse.Type)
                    {
                    case Constantes.TYPE_IFACE:
                        correct = z.SSR_SetUserInfo(currentPointeuse.IMachine, (int)emp.Id, emp.NomPrenom, null, 0, true);    //upload user information to the memory
                        break;

                    default:
                        correct = z.SetUserInfo(currentPointeuse.IMachine, (int)emp.Id, emp.NomPrenom, null, 0, true);    //upload user information to the memory
                        break;
                    }
                    if (correct)
                    {
                        y.Employe = emp;

                        int          pos = Utils.GetRowData(dgv_empreinte, y.Id);
                        ObjectThread o   = new ObjectThread(dgv_empreinte);
                        o.RemoveDataGridView(pos);
                        Finger    f      = (Finger)Finger.Get(y.Digital);
                        Empreinte p      = empreintes.Find(x => x.Id == y.Id);
                        bool      select = (p != null ? p.Id > 0 : false);
                        o.WriteDataGridView(pos, new object[] { y.Id, select, pos + 1, y.Employe.Id, y.Employe.NomPrenom, f.Main, f.Doigt });

                        Utils.WriteLog("Recuperation Effectuée pour l'employé " + y.Employe.Id);
                    }
                    else
                    {
                        Utils.WriteLog("Recuperation Impossible pour l'employé " + y.Employe.Id);
                    }
                }
            }
        }