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()); } }
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(); }
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(); }
internal void FillFMDs() { foreach (string s in FIDs) { FMDs.Add(Fmd.DeserializeXml(s)); } }
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(); } }
/// <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(); } } }
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"); } }
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(); }
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(); } }
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"); } }
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(); } }
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)); }
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); } }
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)); }