Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }