public CompareResponsePersona CompararHuellaPersona(ComparationRequest DataCompare) { var resultset = new CompareResponsePersona(); try { var identify = true; var result = new List <cHuellasPersona>(); var list = new MainRule <PERSONA_BIOMETRICO>().Listado() .Where(w => w.ID_TIPO_BIOMETRICO == (short)DataCompare.ID_TIPO_BIOMETRICO && (DataCompare.ID_TIPO_PERSONA.HasValue ? w.PERSONA.ID_TIPO_PERSONA == (short?)DataCompare.ID_TIPO_PERSONA : w.PERSONA.ID_TIPO_PERSONA != null) && w.ID_FORMATO == (short)DataCompare.ID_TIPO_FORMATO) .AsEnumerable() .Select(s => new { PERSONA = new cHuellasPersona { ID_PERSONA = s.ID_PERSONA, NORIGINAL = s.NORIGINAL }, FMD = Importer.ImportFmd(s.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data }) .ToList(); var _lista_filtrada = list.Where(w => w.FMD != null); var doIdentify = Comparison.Identify(Importer.ImportFmd(DataCompare.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data, 0, _lista_filtrada.Select(s => s.FMD), (0x7fffffff / 100000), 10); if (doIdentify.ResultCode != Constants.ResultCode.DP_SUCCESS) { identify = false; } if (doIdentify.Indexes.Count() > 0) { foreach (var item in doIdentify.Indexes.ToList()) { result.Add(_lista_filtrada.ElementAt(item.FirstOrDefault()).PERSONA); } identify = true; } else { identify = false; } resultset.Identify = identify; resultset.Result = result; } catch { resultset.Identify = false; resultset.Result = new List <cHuellasPersona>(); return(resultset); } return(resultset); }
public bool ExistenHuellasImputado(ComparationRequest[] Huellas) { if (Huellas == null) { return(false); } if (!Huellas.Any()) { return(false); } var list = new MainRule <IMPUTADO_BIOMETRICO>().Listado().Where(w => w.ID_FORMATO == (short)enumTipoFormato.FMTO_DP && w.CALIDAD > 0 && w.BIOMETRICO != null).AsEnumerable().Select(s => new { IMPUTADO = new cHuellasImputado { ID_ANIO = s.ID_ANIO, ID_CENTRO = s.ID_CENTRO, ID_IMPUTADO = s.ID_IMPUTADO }, FMD = Importer.ImportFmd(s.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data }) .ToList(); foreach (var item in Huellas) { if (item.BIOMETRICO.Length <= 0) { continue; } var identify = true; var doIdentify = Comparison.Identify(Importer.ImportFmd(item.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data, 0, list.Where(w => w.FMD != null).Select(s => s.FMD), (0x7fffffff / 100000), 10); if (doIdentify.ResultCode != Constants.ResultCode.DP_SUCCESS) { identify = false; } if (doIdentify.Indexes.Count() > 0) { identify = true; } else { identify = false; } if (!identify) { return(false); } } return(true); }