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 CompareResponseImputado CompararHuellaImputado(ComparationRequest DataCompare) { var resultset = new CompareResponseImputado(); try { var identify = true; var result = new List <cHuellasImputado>(); var list = new MainRule <IMPUTADO_BIOMETRICO>().Listado().Where(w => w.ID_TIPO_BIOMETRICO == (short)DataCompare.ID_TIPO_BIOMETRICO && w.ID_FORMATO == (short)DataCompare.ID_TIPO_FORMATO && 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 }) .Where(w => w.FMD != null) .ToList(); var doIdentify = Comparison.Identify(Importer.ImportFmd(DataCompare.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data, 0, list.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(list[item.FirstOrDefault()].IMPUTADO); } identify = true; } else { identify = false; } resultset.Identify = identify; resultset.Result = result; } catch (Exception ex) { resultset.Identify = false; resultset.Result = new List <cHuellasImputado>(); resultset.MensajeError = ex.InnerException.Message; return(resultset); } return(resultset); }
public CompareResponseImputado CompararHuellaImputadoPorUbicacion(ComparationRequest DataCompare) { var resultset = new CompareResponseImputado(); try { var identify = true; var result = new List <cHuellasImputado>(); var predicate = PredicateBuilder.True <IMPUTADO_BIOMETRICO>(); //predicate = predicate.And(w => w.ID_TIPO_BIOMETRICO == (short)DataCompare.ID_TIPO_BIOMETRICO && w.ID_FORMATO == (short)DataCompare.ID_TIPO_FORMATO && w.CALIDAD > 0); //predicate = predicate.And(w => (w.ID_TIPO_BIOMETRICO >= 0 && w.ID_TIPO_BIOMETRICO <= 9) && w.ID_FORMATO == (short)DataCompare.ID_TIPO_FORMATO && w.CALIDAD > 0 && w.BIOMETRICO != null); predicate = predicate.And(w => (w.TOMA == "S") && w.ID_FORMATO == (short)DataCompare.ID_TIPO_FORMATO && w.CALIDAD > 0 && w.BIOMETRICO != null); if (DataCompare.ID_CENTRO.HasValue && DataCompare.ID_EDIFICIO.HasValue && DataCompare.ID_SECTOR.HasValue) { predicate = predicate.And(w => w.IMPUTADO.INGRESO.Any(a => a.ID_ESTATUS_ADMINISTRATIVO != 5 && a.ID_ESTATUS_ADMINISTRATIVO != 6 && a.ID_ESTATUS_ADMINISTRATIVO != 7 && a.ID_ESTATUS_ADMINISTRATIVO != 4 && a.ID_UB_CENTRO == DataCompare.ID_CENTRO && a.ID_UB_EDIFICIO == DataCompare.ID_EDIFICIO && a.ID_UB_SECTOR == DataCompare.ID_SECTOR)); } else if (DataCompare.ID_CENTRO.HasValue && DataCompare.ID_EDIFICIO.HasValue) { predicate = predicate.And(w => w.IMPUTADO.INGRESO.Any(a => a.ID_ESTATUS_ADMINISTRATIVO != 5 && a.ID_ESTATUS_ADMINISTRATIVO != 6 && a.ID_ESTATUS_ADMINISTRATIVO != 7 && a.ID_ESTATUS_ADMINISTRATIVO != 4 && a.ID_UB_CENTRO == DataCompare.ID_CENTRO && a.ID_UB_EDIFICIO == DataCompare.ID_EDIFICIO)); } else if (DataCompare.ID_CENTRO.HasValue) { predicate = predicate.And(w => w.IMPUTADO.INGRESO.Any(a => a.ID_ESTATUS_ADMINISTRATIVO != 5 && a.ID_ESTATUS_ADMINISTRATIVO != 6 && a.ID_ESTATUS_ADMINISTRATIVO != 7 && a.ID_ESTATUS_ADMINISTRATIVO != 4 && a.ID_UB_CENTRO == DataCompare.ID_CENTRO)); } var list = new MainRule <IMPUTADO_BIOMETRICO>().Listado().AsExpandable().Where(predicate).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 }) .Where(w => w.FMD != null) .ToList(); var doIdentify = Comparison.Identify(Importer.ImportFmd(DataCompare.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data, 0, list.Select(s => s.FMD), (0x7fffffff / 100000), 10); if (doIdentify.ResultCode != Constants.ResultCode.DP_SUCCESS) { identify = false; } if (doIdentify.Indexes != null) { if (doIdentify.Indexes.Count() > 0) { foreach (var item in doIdentify.Indexes.ToList()) { result.Add(list[item.FirstOrDefault()].IMPUTADO); } identify = true; } else { identify = false; } } else { identify = false; } resultset.Identify = identify; resultset.Result = result; } catch (Exception ex) { resultset.Identify = false; resultset.Result = new List <cHuellasImputado>(); resultset.MensajeError = ex.InnerException.Message; return(resultset); } return(resultset); }