예제 #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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }