private async void OnBuscarPorHuellaCustodio() { try { PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); var nRet = -1; var bandera = true; var requiereGuardarHuellas = Parametro.GuardarHuellaEnBusquedaJuridico; if (requiereGuardarHuellas) { try { nRet = CLSFPCaptureDllWrapper.CLS_Initialize(); } catch { bandera = false; } } else { bandera = false; } var windowBusqueda = new LeerCustodioEdificio(); windowBusqueda.DataContext = new LeerCustodioEdificioViewModel(enumTipoPersona.PERSONA_EMPLEADO, nRet == 0, requiereGuardarHuellas, null, null); if (nRet != 0 ? ((ControlPenales.Clases.FingerPrintScanner)(windowBusqueda.DataContext)).Readers.Count == 0 : false) { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.LISTA_ASISTENCIA_INTERNO_EDIFICIO); StaticSourcesViewModel.Mensaje("ADVERTENCIA", "ASEGÚRESE DE CONECTAR SU LECTOR DE HUELLA DIGITAL", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION, 5); return; } windowBusqueda.Owner = PopUpsViewModels.MainWindow; windowBusqueda.KeyDown += (s, e) => { try { if (e.Key == System.Windows.Input.Key.Escape) { windowBusqueda.Close(); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar", ex); } }; ((LeerCustodioEdificioViewModel)windowBusqueda.DataContext).ModoHuellaCustodio = true; windowBusqueda.Closed += (s, e) => { try { var c = ((LeerCustodioEdificioViewModel)windowBusqueda.DataContext).ListResultadoCustodio != null ? ((LeerCustodioEdificioViewModel)windowBusqueda.DataContext).ListResultadoCustodio.Select(se => se.Persona).FirstOrDefault() : null; if (c != null) { SelectedCustodio = new cPersona().Obtener(c.ID_PERSONA).FirstOrDefault(); } else { SelectedCustodio = null; } PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cerrar búsqueda", ex); } }; windowBusqueda.ShowDialog(); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar custodio por huellas.", ex); } }
private async void OnBuscarPorHuella(string obj = "") { try { await Task.Factory.StartNew(() => PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO)); await TaskEx.Delay(400); var nRet = -1; var bandera = true; var requiereGuardarHuellas = Parametro.GuardarHuellaEnBusquedaJuridico; if (requiereGuardarHuellas) { try { nRet = CLSFPCaptureDllWrapper.CLS_Initialize(); } catch { bandera = false; } } else { bandera = false; } var windowBusqueda = new BusquedaHuella(); windowBusqueda.DataContext = new BusquedaHuellaViewModel(enumTipoPersona.IMPUTADO, nRet == 0, requiereGuardarHuellas); if (nRet != 0 ? ((ControlPenales.Clases.FingerPrintScanner)(windowBusqueda.DataContext)).Readers.Count == 0 : false) { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.HUELLAS); StaticSourcesViewModel.Mensaje("Advertencia", "Asegurese de conectar su lector de huella digital", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION, 5); return; } windowBusqueda.Owner = PopUpsViewModels.MainWindow; windowBusqueda.KeyDown += (s, e) => { try { if (e.Key == System.Windows.Input.Key.Escape) { windowBusqueda.Close(); } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar", ex); } }; windowBusqueda.Closed += (s, e) => { try { HuellasCapturadas = ((BusquedaHuellaViewModel)windowBusqueda.DataContext).HuellasCapturadas; if (bandera == true) { CLSFPCaptureDllWrapper.CLS_Terminate(); } PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); if (!((BusquedaHuellaViewModel)windowBusqueda.DataContext).IsSucceed) { return; } Imputado = ((BusquedaHuellaViewModel)windowBusqueda.DataContext).SelectRegistro != null ? ((BusquedaHuellaViewModel)windowBusqueda.DataContext).SelectRegistro.Imputado : null; if (Imputado == null)//NO ENCONTRO LAS HUELLAS { ValidacionBiometrica(); } else//SI ENCONTRO HUELLAS SE VALIDAN { if (SelectedLiberacion.Liberacion != null) { if (SelectedLiberacion.Liberacion.ID_CENTRO == Imputado.ID_CENTRO && SelectedLiberacion.Liberacion.ID_ANIO == Imputado.ID_ANIO && SelectedLiberacion.Liberacion.ID_IMPUTADO == Imputado.ID_IMPUTADO) { //Guardar("N"); GuardarLibertadBiometrica("N"); #region Comentado //if (GuardarLiberacion("N")) //{ // new Dialogos().ConfirmacionDialogo("ÉXITO", "Informaci\u00F3n registrada correctamente."); // ObtenerTodo(); //} //else // new Dialogos().ConfirmacionDialogo("ERROR", "No se registr\u00F3 la informaci\u00F3n."); #endregion } else { ValidacionBiometrica(); } } else { //new Dialogos().ConfirmacionDialogo("Validación", "Las huellas del interno no conciden con las huellas interno a liberar."); ValidacionBiometrica(); } } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cerrar búsqueda", ex); } }; windowBusqueda.ShowDialog(); //AceptarBusquedaHuellaFocus = true; } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar imputado por huellas.", ex); } }
private void BuscarHuella() { try { //var windowBusqueda = new LeerInternosEdificio(); //windowBusqueda.DataContext = new LeerInternosEdificioViewModel(enumTipoPersona.IMPUTADO,null,false,FEdificio != -1 ? (short?)FEdificio : null,FSector != -1 ? (short?)FSector : null); var windowBusqueda = new LeerInternosEdificio(); windowBusqueda.DataContext = new LeerInternosEdificioViewModel(enumTipoPersona.IMPUTADO, null, false, FEdificio, FSector); if (CLSFPCaptureDllWrapper.CLS_Initialize() != 0 ? ((ControlPenales.Clases.FingerPrintScanner)(windowBusqueda.DataContext)).Readers.Count == 0 : false) { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.LISTA_ASISTENCIA_INTERNO_EDIFICIO); StaticSourcesViewModel.Mensaje("ADVERTENCIA", "ASEGÚRESE DE CONECTAR SU LECTOR DE HUELLA DIGITAL", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION, 5); return; } PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); windowBusqueda.Owner = PopUpsViewModels.MainWindow; windowBusqueda.KeyDown += (s, e) => { try { if (e.Key == System.Windows.Input.Key.Escape) { windowBusqueda.Close(); } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar", ex); } }; windowBusqueda.Closed += (s, e) => { try { var resultado = ((LeerInternosEdificioViewModel)windowBusqueda.DataContext).ListaResultadoRequerido; if (resultado != null) { if (IndiceTab == 0) { if (LstInternosRequeridos != null) { foreach (var r in resultado) { var imp = LstInternosRequeridos.Where(w => w.ID_CENTRO == r.IdCentro && w.ID_ANIO == r.IdAnio && w.ID_IMPUTADO == r.IdImputado && w.UBICACION == 0).FirstOrDefault(); if (imp != null) { imp.SELECCIONE = true; if (lstInternosRequeridosSeleccionados == null) { lstInternosRequeridosSeleccionados = new ObservableCollection <cControlInternoEdificio>(); } lstInternosRequeridosSeleccionados.Add(imp); } } LstInternosRequeridos = new ObservableCollection <cControlInternoEdificio>(LstInternosRequeridos); TotalInternos = string.Format("Total de Internos: {0}", LstInternosRequeridos != null ? LstInternosRequeridos.Count : 0); TotalSeleccionados = string.Format("Total de Internos Seleccionados: {0}", LstInternosRequeridos != null ? LstInternosRequeridos.Count(w => w.SELECCIONE) : 0); } } else { if (LstInternosAusentes != null) { foreach (var r in resultado) { var imp = LstInternosAusentes.Where(w => w.ID_CENTRO == r.IdCentro && w.ID_ANIO == r.IdAnio && w.ID_IMPUTADO == r.IdImputado && w.UBICACION > 0).FirstOrDefault(); if (imp != null) { imp.SELECCIONE = true; if (lstInternosAusentesSeleccionados == null) { lstInternosAusentesSeleccionados = new ObservableCollection <cControlInternoEdificio>(); } lstInternosAusentesSeleccionados.Add(imp); } } LstInternosAusentes = new ObservableCollection <cControlInternoEdificio>(LstInternosAusentes); TotalInternos = string.Format("Total de Internos: {0}", LstInternosAusentes != null ? LstInternosAusentes.Count : 0); TotalSeleccionados = string.Format("Total de Internos Seleccionados: {0}", LstInternosAusentes != null ? LstInternosAusentes.Count(w => w.SELECCIONE) : 0); } } } CLSFPCaptureDllWrapper.CLS_Terminate(); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cerrar búsqueda", ex); } }; if (IndiceTab == 1) { ((LeerInternosEdificioViewModel)windowBusqueda.DataContext).ModoHuella = true; } else { ((LeerInternosEdificioViewModel)windowBusqueda.DataContext).ModoHuella = false; } windowBusqueda.ShowDialog(); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar la huella del imputado.", ex); } }
private async void OnBuscarPorHuella(string obj = "") { await Task.Factory.StartNew(() => PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO)); await TaskEx.Delay(400); var nRet = -1; var bandera = true; var requiereGuardarHuellas = Parametro.GuardarHuellaEnBusquedaEstatusAdministrativo; if (requiereGuardarHuellas) { try { nRet = CLSFPCaptureDllWrapper.CLS_Initialize(); } catch { bandera = false; } } else { bandera = false; } var windowBusqueda = new BusquedaHuella(); windowBusqueda.DataContext = new BusquedaHuellaViewModel(enumTipoPersona.IMPUTADO, nRet == 0, requiereGuardarHuellas); if (nRet != 0 ? ((ControlPenales.Clases.FingerPrintScanner)(windowBusqueda.DataContext)).Readers.Count == 0 : false) { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.HUELLAS); StaticSourcesViewModel.Mensaje("ADVERTENCIA", "ASEGURESE DE CONECTAR SU LECTOR DE HUELLA DIGITAL", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION, 5); return; } windowBusqueda.Owner = PopUpsViewModels.MainWindow; windowBusqueda.KeyDown += (s, e) => { try { if (e.Key == System.Windows.Input.Key.Escape) { windowBusqueda.Close(); } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar", ex); } }; windowBusqueda.Closed += (s, e) => { try { HuellasCapturadas = ((BusquedaHuellaViewModel)windowBusqueda.DataContext).HuellasCapturadas; if (bandera == true) { CLSFPCaptureDllWrapper.CLS_Terminate(); } PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); if (!((BusquedaHuellaViewModel)windowBusqueda.DataContext).IsSucceed) { return; } Imputado = ((BusquedaHuellaViewModel)windowBusqueda.DataContext).SelectRegistro != null ? ((BusquedaHuellaViewModel)windowBusqueda.DataContext).SelectRegistro.Imputado : null; if (Imputado == null) { new Dialogos().ConfirmacionDialogo("Validación", "Favor de autentificar al interno por medio de huella"); return; } else { if (SelectedAtencionCita != null) { if (SelectedAtencionCita.INGRESO != null) { if (Imputado.ID_CENTRO == SelectedAtencionCita.INGRESO.ID_CENTRO && Imputado.ID_ANIO == SelectedAtencionCita.INGRESO.ID_ANIO && Imputado.ID_IMPUTADO == SelectedAtencionCita.ID_IMPUTADO) { TabControlEnabled = MenuGuardarEnabled = true; BHuellasEnabled = false; } else { new Dialogos().ConfirmacionDialogo("Validación", "El interno no coincide con el solicitado"); } } } } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cerrar busqueda", ex); } }; windowBusqueda.ShowDialog(); //AceptarBusquedaHuellaFocus = true; }
private async void OnBuscarPorHuella(string obj = "") { try { await Task.Factory.StartNew(() => PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO)); await TaskEx.Delay(400); var nRet = -1; var bandera = true; var requiereGuardarHuellas = Parametro.GuardarHuellaEnBusquedaPadronVisita; if (requiereGuardarHuellas) { try { nRet = CLSFPCaptureDllWrapper.CLS_Initialize(); } catch { bandera = false; } } else { bandera = false; } var windowBusqueda = new BusquedaHuella(); windowBusqueda.DataContext = new BusquedaHuellaViewModel(enumTipoPersona.PERSONA_TODOS, nRet == 0, requiereGuardarHuellas); if (nRet != 0) { if (((ControlPenales.Clases.FingerPrintScanner)(windowBusqueda.DataContext)).Readers.Count == 0) { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.HUELLAS); StaticSourcesViewModel.Mensaje("ADVERTENCIA", "ASEGURESE DE CONECTAR SU LECTOR DE HUELLA DIGITAL", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION, 5); return; } } windowBusqueda.Owner = PopUpsViewModels.MainWindow; windowBusqueda.KeyDown += (s, e) => { if (e.Key == System.Windows.Input.Key.Escape) { windowBusqueda.Close(); } }; windowBusqueda.Closed += async(s, e) => { var resultado = ((BusquedaHuellaViewModel)windowBusqueda.DataContext); if (resultado != null) { if (resultado.SelectRegistro != null) { SelectedLiberado = resultado.SelectRegistro.Persona; ObtenerLiberado(); } } PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); }; windowBusqueda.ShowDialog(); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar por huella.", ex); } }
private void ShowIdentification(object obj = null) { ShowPopUp = Visibility.Visible; ShowFingerPrint = Visibility.Hidden; var Initial442 = new Thread((Init) => { try { var nRet = 0; CLSFPCaptureDllWrapper.CLS_Initialize(); CLSFPCaptureDllWrapper.CLS_SetLanguage(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_RESOURCE.ENGLISH); nRet = CLSFPCaptureDllWrapper.CLS_CaptureFP(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_TYPE.IDFLATS); if (nRet == 0) { ScannerMessage = "Procesando..."; ShowFingerPrint = Visibility.Visible; ShowLine = Visibility.Visible; ShowOk = Visibility.Hidden; Thread.Sleep(300); HuellasCapturadas = new List <PlantillaBiometrico>(); var SaveFingerPrints = new Thread((saver) => { try { #region [Huellas] //for (short i = 1; i <= 10; i++) //{ // var pBuffer = IntPtr.Zero; // var nBufferLength = 0; // var nNFIQ = 0; // CLSFPCaptureDllWrapper.CLS_GetImage(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_IMPRESSION_TYPE.PLAIN, (CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i, CLSFPCaptureDllWrapper.IMG_TYPE.BMP, ref pBuffer, ref nBufferLength); // var bufferBMP = new byte[nBufferLength]; // if (pBuffer != IntPtr.Zero) // Marshal.Copy(pBuffer, bufferBMP, 0, nBufferLength); // CLSFPCaptureDllWrapper.CLS_GetImage(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_IMPRESSION_TYPE.PLAIN, (CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i, CLSFPCaptureDllWrapper.IMG_TYPE.WSQ, ref pBuffer, ref nBufferLength); // var bufferWSQ = new byte[nBufferLength]; // if (pBuffer != IntPtr.Zero) // Marshal.Copy(pBuffer, bufferWSQ, 0, nBufferLength); // CLSFPCaptureDllWrapper.CLS_GetImageNFIQ(((CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i), ref nNFIQ, CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_IMPRESSION_TYPE.PLAIN); // DPUruNet.Fmd FMD = null; // if (bufferBMP.Length != 0) // { // GuardaHuella = CreateBitmapSourceFromBitmap(new MemoryStream(bufferBMP)); // FMD = ExtractFmdfromBmp(new Bitmap(new MemoryStream(bufferBMP)).Clone(new Rectangle(0, 0, 357, 392), System.Drawing.Imaging.PixelFormat.Format8bppIndexed)).Data; // } // Thread.Sleep(200); // switch ((CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i) // { // #region [Pulgar Derecho] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_THUMB: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Indice Derecho] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_INDEX: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Medio Derecho] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_MIDDLE: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Anular Derecho] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_RING: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Meñique Derecho] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_LITTLE: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Pulgar Izquierdo] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_THUMB: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Indice Izquierdo] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_INDEX: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Medio Izquierdo] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_MIDDLE: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Anular Izquierdo] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_RING: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // #region [Meñique Izquierdo] // case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_LITTLE: // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); // HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); // break; // #endregion // default: // break; // } //} #endregion ScannerMessage = "Huellas Capturadas Correctamente"; } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al procesar huellas.", ex); } }); SaveFingerPrints.Start(); SaveFingerPrints.Join(); ShowLine = Visibility.Hidden; Thread.Sleep(1500); } ShowPopUp = Visibility.Hidden; CLSFPCaptureDllWrapper.CLS_Terminate(); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.HUELLAS); } catch { Application.Current.Dispatcher.Invoke((Action)(delegate { ShowPopUp = Visibility.Hidden; (new Dialogos()).ConfirmacionDialogo("Error", "Revise que el escanner este bien configurado."); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.HUELLAS); })); } }); Initial442.Start(); }
private async void Capture(string obj) { ShowLoading = Visibility.Visible; ShowLine = Visibility.Visible; var nRet = -1; try { CLSFPCaptureDllWrapper.CLS_SetLanguage(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_RESOURCE.ENGLISH); nRet = CLSFPCaptureDllWrapper.CLS_CaptureFP(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_TYPE.IDFLATS); ShowCapturar = Visibility.Collapsed; #region [Huellas] if (nRet == 0) { ScannerMessage = "Procesando..."; ShowLine = Visibility.Visible; ListResultado = null; HuellasCapturadas = new List <PlantillaBiometrico>(); for (short i = 1; i <= 10; i++) { var pBuffer = IntPtr.Zero; var nBufferLength = 0; var nNFIQ = 0; ListResultado = null; GuardandoHuellas = false; CLSFPCaptureDllWrapper.CLS_GetImage(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_IMPRESSION_TYPE.PLAIN, (CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i, CLSFPCaptureDllWrapper.IMG_TYPE.BMP, ref pBuffer, ref nBufferLength); var bufferBMP = new byte[nBufferLength]; if (pBuffer != IntPtr.Zero) { Marshal.Copy(pBuffer, bufferBMP, 0, nBufferLength); } CLSFPCaptureDllWrapper.CLS_GetImage(CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_IMPRESSION_TYPE.PLAIN, (CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i, CLSFPCaptureDllWrapper.IMG_TYPE.WSQ, ref pBuffer, ref nBufferLength); var bufferWSQ = new byte[nBufferLength]; if (pBuffer != IntPtr.Zero) { Marshal.Copy(pBuffer, bufferWSQ, 0, nBufferLength); } CLSFPCaptureDllWrapper.CLS_GetImageNFIQ(((CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i), ref nNFIQ, CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_IMPRESSION_TYPE.PLAIN); Fmd FMD = null; if (bufferBMP.Length != 0) { PropertyImage = CreateBitmapSourceFromBitmap(new MemoryStream(bufferBMP)); FMD = ExtractFmdfromBmp(new Bitmap(new MemoryStream(bufferBMP)).Clone(new Rectangle(0, 0, 357, 392), System.Drawing.Imaging.PixelFormat.Format8bppIndexed)).Data; } ShowContinuar = Visibility.Collapsed; await TaskEx.Delay(1); switch ((CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER)i) { #region [Pulgar Derecho] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_THUMB: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, (short)enumTipoBiometrico.PULGAR_DERECHO) : await ComparePersona(FMD != null?FMD.Bytes : null, (short)enumTipoBiometrico.PULGAR_DERECHO); break; #endregion #region [Indice Derecho] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_INDEX: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.INDICE_DERECHO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.INDICE_DERECHO); break; #endregion #region [Medio Derecho] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_MIDDLE: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MEDIO_DERECHO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MEDIO_DERECHO); break; #endregion #region [Anular Derecho] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_RING: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.ANULAR_DERECHO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.ANULAR_DERECHO); break; #endregion #region [Meñique Derecho] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.RIGHT_LITTLE: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_DERECHO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MENIQUE_DERECHO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MENIQUE_DERECHO); break; #endregion #region [Pulgar Izquierdo] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_THUMB: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.PULGAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.PULGAR_IZQUIERDO) : await ComparePersona(FMD != null?FMD.Bytes : null, (short)enumTipoBiometrico.PULGAR_DERECHO); break; #endregion #region [Indice Izquierdo] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_INDEX: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.INDICE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.INDICE_IZQUIERDO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.INDICE_IZQUIERDO); break; #endregion #region [Medio Izquierdo] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_MIDDLE: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MEDIO_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MEDIO_IZQUIERDO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MEDIO_IZQUIERDO); break; #endregion #region [Anular Izquierdo] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_RING: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.ANULAR_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.ANULAR_IZQUIERDO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.ANULAR_IZQUIERDO); break; #endregion #region [Meñique Izquierdo] case CLSFPCaptureDllWrapper.CLS_FP_CAPTURE_FINGER.LEFT_LITTLE: HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, BIOMETRICO = FMD != null ? FMD.Bytes : bufferBMP, CALIDAD = (short)nNFIQ }); HuellasCapturadas.Add(new PlantillaBiometrico { ID_TIPO_BIOMETRICO = enumTipoBiometrico.MENIQUE_IZQUIERDO, ID_TIPO_FORMATO = enumTipoFormato.FMTO_WSQ, BIOMETRICO = bufferWSQ }); isKeepSearching = BuscarPor == enumTipoPersona.IMPUTADO ? await CompareImputado(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MENIQUE_IZQUIERDO) : await ComparePersona(FMD != null?FMD.Bytes : null, enumTipoBiometrico.MENIQUE_IZQUIERDO); isKeepSearching = true; break; #endregion default: break; } ShowContinuar = Visibility.Visible; ShowCapturar = Visibility.Collapsed; if (!CancelKeepSearching) { await KeepSearch(); } else if (!_GuardarHuellas) { break; } } GuardandoHuellas = true; } else { Application.Current.Dispatcher.Invoke((System.Action)(delegate { ScannerMessage = "Vuelve a capturar las huellas"; ColorMessage = new SolidColorBrush(Colors.DarkOrange); })); } #endregion } catch { CLSFPCaptureDllWrapper.CLS_Terminate(); } if (nRet == 0) { Application.Current.Dispatcher.Invoke((System.Action)(delegate { ScannerMessage = "Busqueda Terminada"; ColorMessage = new SolidColorBrush(Colors.Green); AceptarBusquedaHuellaFocus = true; })); } ShowLine = Visibility.Collapsed; ShowLoading = Visibility.Collapsed; ShowContinuar = Visibility.Collapsed; await TaskEx.Delay(1500); ShowCapturar = Visibility.Visible; }
private async void OnBuscarPorHuella(string obj = "") { try { if (!PConsultar) { (new Dialogos()).ConfirmacionDialogo("Validación", "No cuenta con suficientes privilegios para realizar esta acción."); return; } await Task.Factory.StartNew(() => PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO)); await TaskEx.Delay(400); var nRet = -1; var bandera = true; var requiereGuardarHuellas = Parametro.GuardarHuellaEnBusquedaPadronVisita; if (requiereGuardarHuellas) { try { nRet = CLSFPCaptureDllWrapper.CLS_Initialize(); } catch { bandera = false; } } else { bandera = false; } var windowBusqueda = new BusquedaHuella(); windowBusqueda.DataContext = this; ConstructorHuella(enumTipoPersona.IMPUTADO, nRet == 0, requiereGuardarHuellas); windowBusqueda.dgHuella.Columns.Insert(windowBusqueda.dgHuella.Columns.Count, new DataGridTextColumn() { Binding = new System.Windows.Data.Binding("Imputado") { Converter = new GetTipoPersona() }, Header = "IMPUTADO" }); if (nRet != 0 ? ((ControlPenales.Clases.FingerPrintScanner)(windowBusqueda.DataContext)).Readers.Count == 0 : false) { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.HUELLAS); StaticSourcesViewModel.Mensaje("ADVERTENCIA", "ASEGURESE DE CONECTAR SU LECTOR DE HUELLA DIGITAL", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION, 5); return; } windowBusqueda.Owner = PopUpsViewModels.MainWindow; windowBusqueda.KeyDown += (s, e) => { if (e.Key == System.Windows.Input.Key.Escape) { windowBusqueda.Close(); } }; windowBusqueda.Closed += (s, e) => { HuellasCapturadas = ((NotaMedicaViewModel)windowBusqueda.DataContext).HuellasCapturadas; if (bandera == true) { CLSFPCaptureDllWrapper.CLS_Terminate(); } PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); //var huella = ((NotaMedicaViewModel)windowBusqueda.DataContext); if (!IsSucceed) { return; } if (SelectRegistro != null ? SelectRegistro.Imputado == null : null == null) { return; } //SelectPersona = huella.SelectRegistro.Persona; }; windowBusqueda.ShowDialog(); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al buscar por huella.", ex); } }