Ejemplo n.º 1
0
        private void getData()
        {
            try
            {
                DataTable dt = db.getFingerPrints();

                foreach (DataRow row in dt.Rows)
                {
                    if (row["Right_Thumb"].ToString() != "")
                    {
                        Fmd temp = Fmd.DeserializeXml(row["Right_Thumb"].ToString());

                        fmds.Add(temp);
                        fmdsDic.Add(temp, (int)row["iPersonID"]);
                    }
                }
                if (dt.Rows.Count == 0)
                {
                    MessageBox.Show("There are no finger prints saved in the Database yet!");
                    this.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error occured while getting Finger Prints: " + e.ToString());
            }
        }
Ejemplo n.º 2
0
        public static void LoadAllFmdsUserIDs(string SelectQuery)
        {
            SqlDataReader lReader = ConnectDBnExecuteSelectScript(SelectQuery);
            int           i       = 0;

            // populate all fmds and usernames
            DataTable dt = new DataTable();

            dt.Load(lReader);
            allDBFmd1s   = new Fmd[dt.Rows.Count];
            allDBFmd2s   = new Fmd[dt.Rows.Count];
            allUserNames = new string[dt.Rows.Count];
            // allfingerIDs = new int[dt.Rows.Count];
            if (dt.Rows.Count != 0)
            {
                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    if ((dr["FMD1"].ToString().Length != 0) && (dr["FMD2"].ToString().Length != 0))
                    {
                        allDBFmd1s[i]   = Fmd.DeserializeXml(dr["FMD1"].ToString());
                        allDBFmd2s[i]   = Fmd.DeserializeXml(dr["FMD2"].ToString());
                        allUserNames[i] = dr["UserID"].ToString().TrimEnd();
                        i++;
                    }
                }
            }
            lReader.Close();
        }
Ejemplo n.º 3
0
        public static void LoadAllFmdsUserIDs(string SelectQuery)
        {
            SqlDataReader lReader = ConnectDBnExecuteSelectScript(SelectQuery);

            // populate all fmds and usernames
            DataTable dt = new DataTable();

            dt.Load(lReader);

            if (dt.Rows.Count != 0)
            {
                allDBFmd1s   = new Fmd[dt.Rows.Count];
                allUserNames = new string[dt.Rows.Count];

                int i = 0;

                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    string fmd1 = dr[1].ToString();

                    allUserNames[i] = dr[0].ToString();
                    allDBFmd1s[i]   = Fmd.DeserializeXml(fmd1);

                    i++;
                }
            }

            lReader.Close();
        }
Ejemplo n.º 4
0
 internal void FillFMDs()
 {
     foreach (string s in FIDs)
     {
         FMDs.Add(Fmd.DeserializeXml(s));
     }
 }
Ejemplo n.º 5
0
        private void button1_Click(object sender, EventArgs e)
        {
            MySqlConnection con = null;
            Boolean         got = false;

            try
            {
                String ConString = ConfigurationManager.ConnectionStrings["biometrics.Properties.Settings.testreportConnectionString"].ConnectionString;
                con = new MySqlConnection(ConString);
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
                con.Open();

                String       query = "Select * from tblfinger";
                MySqlCommand cmd   = new MySqlCommand(query, con);
                cmd.Prepare();
                MySqlDataReader row = cmd.ExecuteReader();
                if (row.HasRows)
                {
                    while (row.Read())
                    {
                        Fmd previousFinger = Fmd.DeserializeXml(row["CustomerFinger"].ToString());

                        CompareResult compareResult = Comparison.Compare(firstFinger, 0, previousFinger, 0);
                        if (compareResult.ResultCode == Constants.ResultCode.DP_SUCCESS)
                        {
                            if ((compareResult.Score < (PROBABILITY_ONE / 100000)))
                            {
                                MessageBox.Show("Welcome TO Our Page " + row["LedgerId"].ToString());
                                got = true;
                                break;
                            }
                        }
                    }
                }
                con.Close();

                if (!got)
                {
                    lblPlaceFinger.Visible = true;
                    pbFingerprint.Image    = null;
                    MessageBox.Show("Invalid Information. Please Retry ");
                    firstFinger = null;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Fail To Create User - " + ex.Message);
                con.Close();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// The match fingerprint.
        /// </summary>
        /// <param name="firstsFmd">
        /// The firsts fmd.
        /// </param>
        /// <param name="secondFmd">
        /// The second fmd.
        /// </param>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        public bool MatchFingerprint(string firstsFmd, string secondFmd)
        {
            var fmdFirsts     = Fmd.DeserializeXml(firstsFmd);
            var fmdSecond     = Fmd.DeserializeXml(secondFmd);
            var resultCompare = Comparison.Compare(fmdFirsts, 0, fmdSecond, 0);

            if (resultCompare.ResultCode != Constants.ResultCode.DP_SUCCESS)
            {
                return(false);
            }

            return(resultCompare.Score < (ProbabilityOne / 100000));
        }
        private void DoFingerprintAuth()
        {
            Verification verificationForm    = null;
            var          mainObject          = new MainObject();
            var          readerSelectionForm = new ReaderSelection
            {
                Currentinstance = mainObject
            };

            readerSelectionForm.ShowDialog();

            if (UserExists)
            {
                //uncomment to bypass fingerprint in the absence of scanner
                //AuthenticationData.Single(d => d.Scheme == FingerprintAuthentication).Authenticated = true;
                //return;
                if (verificationForm == null)
                {
                    verificationForm = new Verification
                                       (
                        successful =>
                    {
                        successful = successful && UserRepository.LogSuccessfulEntry(verificationForm.SuccessReading, User.Email);

                        AuthenticationData.Single(d => d.Scheme == FingerprintAuthentication).Authenticated = successful;
                    }
                                       )
                    {
                        Currentinstance = mainObject
                    };
                }

                var strFmds = User.Snapshots.SelectMany(s => s.Fingerprints).Select(s => s.Fmd);
                if (strFmds.Any())
                {
                    var fmds = new List <Fmd>();
                    foreach (var strFmd in strFmds)
                    {
                        var fmd = Fmd.DeserializeXml(strFmd);
                        fmds.Add(fmd);
                    }
                    verificationForm.database = fmds;

                    verificationForm.ShowDialog();
                }
            }
        }
Ejemplo n.º 8
0
        private void btnVerifyFingers_Click(object sender, RoutedEventArgs e)
        {
            Verification vf = null;

            if (_readerSelection == null)
            {
                _readerSelection = new ReaderSelection();
                // _readerSelection.Sender = this;
                _readerSelection.Currentinstance = mobj;
            }

            _readerSelection.ShowDialog();

            if (vf == null)
            {
                vf = new Verification();

                vf.Currentinstance = mobj; // this;
            }
            if (pvm.Fmds != null)
            {
                List <Fmd> fmds = new List <Fmd>();
                foreach (int key in pvm.Fmds.Keys)
                {
                    Fmd fmd = Fmd.DeserializeXml(pvm.Fmds[key]);
                    fmds.Add(fmd);
                }
                vf.database = fmds;
                // MessageBox.Show("Reader available:"+ (mobj.CurrentReader!=null).ToString());

                vf.ShowDialog();
            }
            else
            {
                MessageBox.Show("No fingerprint found in database", "Alert");
            }
        }
Ejemplo n.º 9
0
        private void AbsenVerification_Loaded(object sender, RoutedEventArgs e)
        {
            // verification = new DPCtlXUru.IdentificationXControl();
            if (verification.Reader == null)
            {
                verification.Reader = Finger.CurrentReader;
            }
            List <Fmd> list = new List <Fmd>();

            list.Add(Fmd.DeserializeXml(Pegawai.Enrollment));
            verification.Fmds            = null;
            verification.Fmds            = list;
            verification.CapturePriority = Constants.CapturePriority.DP_PRIORITY_COOPERATIVE;
            verification.ThresholdScore  = DPFJ_PROBABILITY_ONE * 1 / 100000;
            verification.Location        = new System.Drawing.Point(3, 3);
            //verification.Name = "identificationControl";
            verification.Size          = new System.Drawing.Size(397, 128);
            verification.TabIndex      = 0;
            verification.MaximumResult = 10;
            verification.On_Identify  += Verification_On_Identify;
            verification.OnIdentify   += Verification_OnIdentify;
            verification.Refresh();
            verification.StartIdentification();
        }
Ejemplo n.º 10
0
        private void IdentifyThread()
        {
            while (!reset)
            {
                Fid fid = null;

                if (!CaptureFinger(ref fid))
                {
                    //break;
                }

                if (objReader == null)
                {
                    objReader = objDeviceReader.IndexDevice();
                    objDeviceReader.InitializeDevice(ref objReader);
                }

                if (fid == null)
                {
                    continue;
                }

                DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI);

                if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS)
                {
                    //break;

                    if (objReader != null)
                    {
                        objReader.Dispose();
                        objReader = null;
                    }
                    return;
                }

                int thresholdScore = DPFJ_PROBABILITY_ONE * 1 / 100000;

                Fmd aux = resultConversion.Data;
                Fmd temp;

                foreach (Clases.Persona item in listPersons)
                {
                    temp = Fmd.DeserializeXml(item.huella);

                    CompareResult identifyResult = Comparison.Compare(aux, 0, temp, 0);

                    if (identifyResult.ResultCode != Constants.ResultCode.DP_SUCCESS)
                    {
                        break;
                    }

                    if (identifyResult.Score < thresholdScore)
                    {
                        SendMessage("Identificado");
                        MessageBox.Show("Identificado");
                        Thread.Sleep(3000);
                        SendMessage("Buscando...");
                        break;
                    }
                }
            }

            if (objReader != null)
            {
                objReader.Dispose();
            }
        }
Ejemplo n.º 11
0
        private void OnCaptured(CaptureResult result)
        {
            frmEncontrarDispositivo n = new frmEncontrarDispositivo();
            //if (n.conectado==false)
            //{
            //    DialogResult dialogoerror = globales.MessageBoxError("Ocurrio un error, no se detecta dispositivo", "Verificar", globales.menuPrincipal);
            //    return;
            //    dispo.Text = "DISPOSITIVO NO CONECTADO";
            //}

            DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(result.Data, Constants.Formats.Fmd.ANSI);

            if (result.ResultCode != Constants.ResultCode.DP_SUCCESS)
            {
                //throw new Exception(result.ResultCode.ToString());
            }


            Fmd capturado = resultConversion.Data;

            try
            {
                string hexa = ByteArrayToString(capturado.Bytes);
            }
            catch
            {
                CheckForIllegalCrossThreadCalls = false;
                dispo.Text = "DISPOSITIVO NO CONECTADO";
                return;
            }

            //    string query = $"select jpp,num,huella from nominas_catalogos.maestro where huella is not null order by jpp,num";
            string query = "select jpp,num,huella from nominas_catalogos.maestro where huella is not null  and huella <>'' order by jpp,num";
            List <Dictionary <string, object> > resultado = globales.consulta(query);

            if (resultado.Count <= 0)
            {
                return;
            }


            string caaaa = Fmd.SerializeXml(capturado);
            Fmd    dese  = Fmd.DeserializeXml(caaaa);

            bool encontrado = true;

            foreach (Dictionary <string, object> item in resultado)
            {
                string      xmlStr = Convert.ToString(item["huella"]);
                XmlDocument xml    = new XmlDocument();
                xml.LoadXml(xmlStr);
                Fmd   fmd  = Fmd.DeserializeXml(xmlStr);
                Fmd[] fmds = new Fmd[1];
                fmds[0] = fmd;
                // fmds[1] = capturado;


                int thresholdScore = DPFJ_PROBABILITY_ONE * 1 / 100000;

                CompareResult  resultadoAux   = Comparison.Compare(capturado, 0, fmd, 0);
                IdentifyResult identifyResult = Comparison.Identify(capturado, 0, fmds, thresholdScore, 2);

                if (resultadoAux.Score == 0)
                {
                    realizarMensaje(tipo_mensaje.success, $"{item["jpp"]} encontrado");


                    query     = $"select * from nominas_catalogos.maestro where huella is not null and jpp = '{item["jpp"]}' and num = {item["num"]} order by jpp,num";
                    resultado = globales.consulta(query);
                    if (resultado.Count != 0)
                    {
                        huellita = true;
                        rellenar(resultado[0]);
                    }
                    encontrado = true;
                    break;
                }
                else
                {
                    encontrado = false;
                }

                if (resultadoAux.ResultCode != Constants.ResultCode.DP_SUCCESS)
                {
                    realizarMensaje(tipo_mensaje.exclamation, "UPS, NO SE ENCUENTRA LA HUELLA EN LA BASE");
                    encontrado = true;
                    return;
                }
            }

            if (!encontrado)
            {
                realizarMensaje(tipo_mensaje.exclamation, "UPS, NO SE ENCUENTRA LA HUELLA EN LA BASE");
            }
        }
Ejemplo n.º 12
0
        private void IdentifyThread()
        {
            while (!reset)
            {
                Fid fid = null;

                if (!CaptureFinger(ref fid))
                {
                    //break;
                }

                if (objReader == null)
                {
                    objReader = objDeviceReader.IndexDevice();
                    objDeviceReader.InitializeDevice(ref objReader);
                }

                if (fid == null)
                {
                    continue;
                }

                DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI);


                if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS)
                {
                    //break;

                    if (objReader != null)
                    {
                        objReader.Dispose();
                        objReader = null;
                    }
                    return;
                }

                int thresholdScore = DPFJ_PROBABILITY_ONE * 1 / 100000;

                Fmd aux = resultConversion.Data;
                Fmd temp;
                foreach (Clases.Persona item in listPersons)
                {
                    try
                    {
                        temp = Fmd.DeserializeXml(item.huella);

                        CompareResult identifyResult = Comparison.Compare(aux, 0, temp, 0);

                        if (identifyResult.ResultCode != Constants.ResultCode.DP_SUCCESS)
                        {
                            break;
                        }

                        if (identifyResult.Score < thresholdScore)
                        {
                            List <Datos.membresia> mem = new Negocios.Nmembresia().ListarMembresia(item.id);
                            //guardar la asistencia en la base de datos
                            try
                            {
                                //insertamos en la base de datos
                                string cs = ConfigurationManager.ConnectionStrings["saffron.GYM.GYM2"].ConnectionString;

                                SqlConnection conexion = new SqlConnection(cs);
                                conexion.Open();
                                SqlCommand query = new SqlCommand("INSERT INTO GYM.asistencias VALUES (" + item.id + ", GETDATE())", conexion);
                                query.ExecuteNonQuery();
                                conexion.Close();
                            }
                            catch (Exception err)
                            {
                                MessageBox.Show(err.Message);
                            }

                            if (mem.Count > 0)
                            {
                                string   membresia = "";
                                DateTime fecha_i   = DateTime.Now;
                                DateTime fecha_f   = DateTime.Now;
                                foreach (var m in mem)
                                {
                                    //sacamos el tipo de membresia
                                    switch (m.tipo_membresia)
                                    {
                                    case "G": membresia = "Gimnasio"; break;

                                    case "Z": membresia = "Zumba"; break;

                                    case "C": membresia = "Crossfit"; break;
                                    }
                                    //sacamos la fecha inicial
                                }

                                // Difference in days, hours, and minutes.
                                TimeSpan ts = fecha_f - DateTime.Now;

                                // Difference in days.
                                int differenceInDays = ts.Days;
                                SendMessage("Cliente identificado: ", item.Nombre, membresia, fecha_i.ToShortDateString(), fecha_f.ToShortDateString(), differenceInDays.ToString());
                            }
                            else
                            {
                                SendMessage("Cliente identificado: ", item.Nombre, "Sin Membresia Activa", "", "", "");
                            }
                            Thread.Sleep(10000);
                            SendMessage("Coloque el dedo en el checador...", "", "", "", "", "");
                            menuPrincipal.Dispatcher.BeginInvoke(new Action(delegate()
                            {
                                menuPrincipal.lblMembresia.Content = "";
                                menuPrincipal.lbl_inicio.Content   = "";
                                menuPrincipal.lbl_fin.Content      = "";
                                menuPrincipal.lbl_resto.Content    = "";
                            }));
                            break;
                        }

                        /*else
                         * {
                         *  SendMessage("No se encuentra registrada la huella capturada", "", "", "","","");
                         *  Thread.Sleep(2000);
                         *  SendMessage("Coloque el dedo en el checador...", "", "", "", "","");
                         *  break;
                         * }*/
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show(error.Message);
                    }
                }
            }

            if (objReader != null)
            {
                objReader.Dispose();
            }
        }
Ejemplo n.º 13
0
        private void IdentifyThread()
        {
            while (!reset)
            {
                Fid fid = null;

                if (!CaptureFinger(ref fid))
                {
                    //break;
                }

                if (objReader == null)
                {
                    objReader = objDeviceReader.IndexDevice();
                    objDeviceReader.InitializeDevice(ref objReader);
                }

                if (fid == null)
                {
                    continue;
                }

                DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI);


                if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS)
                {
                    //break;

                    if (objReader != null)
                    {
                        objReader.Dispose();
                        objReader = null;
                    }
                    return;
                }

                int thresholdScore = DPFJ_PROBABILITY_ONE * 1 / 100000;

                Fmd aux = resultConversion.Data;
                Fmd temp;
                foreach (Clases.Persona item in listPersons)
                {
                    try
                    {
                        temp = Fmd.DeserializeXml(item.huella);

                        CompareResult identifyResult = Comparison.Compare(aux, 0, temp, 0);

                        if (identifyResult.ResultCode != Constants.ResultCode.DP_SUCCESS)
                        {
                            break;
                        }

                        var responseString = "";

                        if (identifyResult.Score < thresholdScore)
                        {
                            //guardar la asistencia en la base de datos
                            try
                            {
                                using (var client = new WebClient())
                                {
                                    DateTime checada = DateTime.Now;
                                    var      values  = new NameValueCollection();
                                    values["cuenta"]  = item.id;
                                    values["evento"]  = _evento;
                                    values["checada"] = checada.ToString("yyyy-MM-dd H:mm:ss");
                                    var response = client.UploadValues("http://facite.uas.edu.mx/agenda/registrar_checada.php", values);
                                    responseString = Encoding.Default.GetString(response);
                                }
                            }
                            catch (Exception err)
                            {
                                MessageBox.Show(err.Message);
                            }

                            SendMessage(responseString, item.Nombre, "Se registró a las " + DateTime.Now.ToShortTimeString(), "", "", "");

                            Thread.Sleep(3000);
                            SendMessage("Coloque el dedo en el checador...", "", "", "", "", "");
                            menuPrincipal.Dispatcher.BeginInvoke(new Action(delegate()
                            {
                                menuPrincipal.lbl_fechas.Content = "";
                                menuPrincipal.lbl_resto.Content  = "";
                            }));
                            break;
                        }
                        else
                        {
                            //SendMessage("No se encuentra registrada la huella", "", "", "","","");
                            //
                            Thread.Sleep(2000);
                            SendMessage("Coloque el dedo en el checador...", "", "", "", "", "");
                            menuPrincipal.Dispatcher.BeginInvoke(new Action(delegate()
                            {
                                menuPrincipal.lbl_fechas.Content = "";
                                menuPrincipal.lbl_resto.Content  = "";
                            }));
                            //break;
                        }
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show(error.Message);
                    }
                }
            }

            if (objReader != null)
            {
                objReader.Dispose();
            }
        }
 public Fmd DeserializeData(String data)
 {
     return(Fmd.DeserializeXml(data));
 }
Ejemplo n.º 15
0
        private void OnCaptured(CaptureResult captureResult)
        {
            try
            {
                // Check capture quality and throw an error if bad.
                if (!CheckCaptureResult(captureResult))
                {
                    return;
                }

                //SendMessage(Action.SendMessage, "A finger was captured.");

                DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(captureResult.Data, Constants.Formats.Fmd.ANSI);
                if (captureResult.ResultCode != Constants.ResultCode.DP_SUCCESS)
                {
                    Reset = true;
                    throw new Exception(captureResult.ResultCode.ToString());
                }


                currentFinger = resultConversion.Data;
                var fmds     = new List <Fmd>();
                var students = _db.Students.ToList();

                //get string version of the current fmd
                //Fmd fmd = Fmd.DeserializeXml(student.FingerPrint);

                foreach (var student in students)
                {
                    if (student.FingerPrint == null)
                    {
                        continue;
                    }
                    Fmd           fmd           = Fmd.DeserializeXml(student.FingerPrint);
                    CompareResult compareResult = Comparison.Compare(currentFinger, 0, fmd, 0);
                    if (compareResult.ResultCode != Constants.ResultCode.DP_SUCCESS)
                    {
                        Reset = true;
                        throw new Exception(compareResult.ResultCode.ToString());
                    }
                    else
                    {
                        if (compareResult.Score < (DPFJ_PROBABILITY_ONE / 100000))
                        {
                            if (captureResult.Data != null)
                            {
                                foreach (Fid.Fiv fiv in captureResult.Data.Views)
                                {
                                    pictureBox.Image    = CreateBitmap(fiv.RawImage, fiv.Width, fiv.Height);
                                    pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
                                }
                            }

                            FileStream fs = new System.IO.FileStream(@"..\..\Pictures\right.bmp", FileMode.Open, FileAccess.Read);

                            lblrstLastName.Invoke(new Action(() => { lblrstLastName.Text = student.LastName; }));
                            lblrstFirstName.Invoke(new Action(() => { lblrstFirstName.Text = student.FirstName; }));
                            lblrstMiddleName.Invoke(new Action(() => { lblrstMiddleName.Text = student.MiddleName; }));
                            lblrstMatricNo.Invoke(new Action(() => { lblrstMatricNo.Text = student.MatricNo; }));
                            lblrstEmail.Invoke(new Action(() => { lblrstEmail.Text = student.Email; }));
                            lblrstPhone.Invoke(new Action(() => { lblrstPhone.Text = student.Phone; }));
                            cmbCollege.Invoke(new Action(() => { cmbCollege.SelectedValue = student.CollegeId; }));
                            cmbProgramme.Invoke(new Action(() => { cmbProgramme.SelectedValue = student.ProgrammeId; }));
                            cmbLevel.Invoke(new Action(() => { cmbLevel.SelectedValue = student.LevelId; }));
                            //pictureBox.Invoke(new Action(() => { pictureBox1.Image = Image.FromFile(@"..\..\Pictures\right.bmp"); }));
                            pictureBox1.Invoke(new Action(() => { pictureBox1.Image = Image.FromStream(fs); }));
                            pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                            fs.Close();
                            return;
                        }
                        else
                        {
                            //MessageBox.Show("The Student does not exist in the database");
                        }
                    }
                }
                ;

                //SendMessage(Action.SendMessage, "Identification resulted in the following number of matches: " + identifyResult.Indexes.Length.ToString());
                //SendMessage(Action.SendMessage, "Place your right index finger on the reader.");
                //}
            }
            catch (Exception ex)
            {
                // Send error message, then close form
                //SendMessage(Action.SendMessage, "Error:  " + ex.Message);
            }
        }
Ejemplo n.º 16
0
        static public Fmd Deserialize(byte[] template)
        {
            String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Fid><Bytes>" + Convert.ToBase64String(template) + "</Bytes><Format>1769473</Format><Version>1.0.0</Version></Fid>";

            return(Fmd.DeserializeXml(xml));
        }