public IdentificarBiometriaHandler()
 {
     _nitgen          = new NBioBSP();
     _data            = _nitgen.FPData;
     _indexSearch     = _nitgen.IndexSearch;
     _mecanismosBusca = new List <NitgenBiometriaTaskSemCargaIndividual>();
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var corConsoleDefault = Console.ForegroundColor;
            var repositorio       = new DigitaisRepositorio();
            var handler           = new IdentificarBiometriaHandler();

            var numeroTotalBiometrias = repositorio.RecuperarNumeroTotalBiometrias();
            var biometriasPorPagina   = (numeroTotalBiometrias / 10) + 10;

            for (int pagina = 1; pagina <= 10; pagina++)
            {
                var biometriasRecuperadas = repositorio.RecuperarPagina(pagina, biometriasPorPagina);
                Console.WriteLine($"Thread {pagina} trabalhará com {biometriasRecuperadas.Count()} biometrias...");
                handler.AdicionarMecanismoBuscaPara(biometriasRecuperadas);
            }

            var possoSair = false;

            while (!possoSair)
            {
                Console.WriteLine("Informe a digital");

                var         nitgen     = new NBioBSP();
                IFPData     data       = nitgen.FPData;
                IDevice     device     = nitgen.Device;
                IExtraction extraction = nitgen.Extraction;

                device.Open(255);
                extraction.Capture();
                var template = extraction.FIR;
                device.Close(255);

                var relogio = new Stopwatch();
                relogio.Start();
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Identificando.....");
                Console.ForegroundColor = corConsoleDefault;
                var resultado = handler.IdentificarBiometriaComCarga(template);
                relogio.Stop();
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"Id digital encontrada {resultado} em {relogio.Elapsed.TotalSeconds} segundos");
                Console.ForegroundColor = corConsoleDefault;

                Console.WriteLine();

                Console.WriteLine("\nCapturar nova digital?");
                var tecla = Console.ReadKey();
                if (tecla.Key == ConsoleKey.N)
                {
                    possoSair = true;
                }
            }
        }
Esempio n. 3
0
        public Task <int> CriarTaskParaIdentificacaoBiometrica(byte[] template, IEnumerable <Biometria> biometrias)
        {
            var contextoIdentificacao = new ContextoParaIndentificacaoBiometrica(Id, biometrias, template);

            CancellationSource = new CancellationTokenSource();
            var token = CancellationSource.Token;

            return(new Task <int>((parametroState) =>
            {
                try
                {
                    var contexto = parametroState as ContextoParaIndentificacaoBiometrica;
                    Console.WriteLine($"{DateTime.Now} - {contexto.Id} - Localizando em {contexto.Biometrias.Count()} biometrias...");

                    if (token.IsCancellationRequested)
                    {
                        return 0;
                    }

                    var nitgenMainApi = new NBioBSP();
                    IIndexSearch nitgenSearchApi = nitgenMainApi.IndexSearch;

                    foreach (var biometria in contexto.Biometrias)
                    {
                        nitgenSearchApi.AddFIR(biometria.TemplateFIR, biometria.Id);
                    }

                    Console.WriteLine($"{DateTime.Now} - {contexto.Id} - Iniciando identificação...");

                    var relogio = new Stopwatch();
                    relogio.Start();
                    nitgenSearchApi.IdentifyUser(template, 7);
                    relogio.Stop();

                    Console.WriteLine($"{DateTime.Now} - {contexto.Id} - Localizado {nitgenSearchApi.UserID} em {relogio.Elapsed.TotalSeconds}");
                    return nitgenSearchApi.UserID;

                    //if (nitgenSearchApi.UserID > 0 && nitgenSearchApi.ErrorCode == 0)
                    //{

                    //}

                    //Console.WriteLine($"ERRO NA IDENTIFICAÇÃO: {nitgenSearchApi.ErrorCode} - {nitgenSearchApi.ErrorDescription}");
                    //return 0;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return 0;
                }
            }, contextoIdentificacao, token));
        }
Esempio n. 4
0
        public static NitgenBiometriaTaskSemCargaIndividual Novo(IEnumerable <Biometria> biometrias)
        {
            var          nitgenMainApi  = new NBioBSP();
            IIndexSearch MecanismoBusca = nitgenMainApi.IndexSearch;

            // Carrega as biometrias
            foreach (var biometria in biometrias)
            {
                MecanismoBusca.AddFIR(biometria.TemplateFIR, biometria.Id);
            }

            return(new NitgenBiometriaTaskSemCargaIndividual(Guid.NewGuid(), MecanismoBusca));
        }