public Task <int> CriarTaskParaIdentificacaoBiometrica(NBioAPI.Type.HFIR template)
        {
            var contextoIdentificacao = new ContextoParaIndentificacaoBiometrica(Id, MecanismoBusca, template);

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

            return(new Task <int>((parametroState) =>
            {
                var contexto = parametroState as ContextoParaIndentificacaoBiometrica;

                if (token.IsCancellationRequested)
                {
                    return 0;
                }

                var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
                var relogio = new Stopwatch();
                relogio.Start();

                var retorno = contexto.MecanismoBusca.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH,
                                                                   out nitgenBiometria, cbInfo);

                relogio.Stop();
                Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}");

                if (token.IsCancellationRequested)
                {
                    return 0;
                }

                return (int)nitgenBiometria.ID;
            }, contextoIdentificacao, token));
        }
示例#2
0
        public Resultado <Digital, Falha> IdentificarDigital(byte[] digitalLida, Digital digitalParaComparar)
        {
            var encontrou = false;
            var payload   = new NBioAPI.Type.FIR_PAYLOAD();

            NBioAPI.Type.HFIR digitalLidaConvertida;
            _apiConversor.FDxToNBioBSPEx(digitalLida, (uint)digitalLida.Length, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO, NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY, out digitalLidaConvertida);

            NBioAPI.Type.HFIR digitalParaCompararConvertida;
            _apiConversor.FDxToNBioBSPEx(digitalParaComparar.TemplateIso, (uint)digitalParaComparar.TemplateIso.Length, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO, NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY, out digitalParaCompararConvertida);

            var retorno = _api.VerifyMatch(digitalLidaConvertida, digitalParaCompararConvertida, out encontrou, payload);

            if (encontrou)
            {
                var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria;
                NBioAPI.IndexSearch.FP_INFO   nitgenBiometria;

                var resultadoAddFir = _apiBusca.AddFIR(digitalLidaConvertida, (uint)digitalParaComparar.Id, out informacaoBiometria);
                retorno = _apiBusca.IdentifyData(digitalLidaConvertida, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGHEST, out nitgenBiometria, cbInfo);

                var idEncontrado = nitgenBiometria.ID;
                _apiBusca.RemoveUser((uint)digitalParaComparar.Id);
                if (idEncontrado > 0)
                {
                    return(digitalParaComparar);
                }
            }
            Debug.WriteLine($"digital {digitalParaComparar.Id}");
            return(Falha.Nova(404, "Digital não encontrada"));
        }
示例#3
0
        private bool AcessoBiometrico(out int CodigoUsuario, CPonto.CPontoClient oProxy, bool Infinito)
        {
            Biometria Bio = new Biometria();

            NBioAPI.Type.FIR_TEXTENCODE         oFirCapture = Bio.FIRDigital(0, PctDigital, LblQualidade, Infinito);
            NBioAPI.IndexSearch.FP_INFO         oInfoCompare;
            NBioAPI.IndexSearch.CALLBACK_INFO_0 CallBackInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
            uint ret;

            ret = oIndexSearch.IdentifyData(oFirCapture, 5, out oInfoCompare, CallBackInfo);
            if (ret != NBioAPI.Error.NONE)
            {
                MsgErro(ret);
                CodigoUsuario = 0;
                return(false);
            }

            int UID = (int)oInfoCompare.ID;

            CodigoUsuario = UID;
            CPonto.HASHDIGITAL oHash = oProxy.SelecionaHash(UID);
            if (oHash == null)
            {
                CodigoUsuario = 0;
                return(false);
            }
            CodigoUsuario = oHash.HaCodigoUsuario;
            return(true);
        }
        private DigitalTask Create(NBioAPI.Type.HFIR template, IEnumerable <Biometria> biometrias)
        {
            var nitgenMainApi   = new NBioAPI();
            var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi);

            nitgenSearchApi.InitEngine();
            var nitgenConvertApi      = new NBioAPI.Export(nitgenMainApi);
            var contextoIdentificacao = BiometriaIndentificacaoContexto.Novo(nitgenSearchApi, nitgenConvertApi);

            contextoIdentificacao.TemplateLido = template;
            var cancellationToken = new CancellationTokenSource();
            var token             = cancellationToken.Token;

            foreach (var biometria in biometrias)
            {
                NBioAPI.Type.HFIR             handle;
                NBioAPI.IndexSearch.FP_INFO[] nitgenBiometria;
                nitgenConvertApi.FDxToNBioBSPEx(biometria.TemplateISO, (uint)biometria.TemplateISO.Length,
                                                NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO, NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY,
                                                out handle);

                nitgenSearchApi.AddFIR(handle, (uint)biometria.Id, out nitgenBiometria);
            }

            var task = new Task <int>((parametroState) =>
            {
                var contexto = parametroState as BiometriaIndentificacaoContexto;
                Console.WriteLine($"{contexto.Id} - Iniciado ");

                if (token.IsCancellationRequested)
                {
                    token.ThrowIfCancellationRequested();
                }

                // Faz o Index Search
                var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
                var relogio = new Stopwatch();
                Console.WriteLine($"{contexto.Id} - Localizando biometria...");
                relogio.Start();
                var retorno = nitgenSearchApi.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH,
                                                           out nitgenBiometria, cbInfo);
                relogio.Stop();
                Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}");

                if (token.IsCancellationRequested)
                {
                    token.ThrowIfCancellationRequested();
                }

                Console.WriteLine($"{contexto.Id} - Finalizado ");
                return((int)nitgenBiometria.ID);
            }, contextoIdentificacao, token);

            return(new DigitalTask(contextoIdentificacao.Id, task, cancellationToken));
        }
        public string Identificar(string Digital)
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.FIR_TEXTENCODE m_textFIR = new NBioAPI.Type.FIR_TEXTENCODE();
            //NBioAPI.Type.HFIR NewFIR;
            NBioAPI.IndexSearch           m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
            NBioAPI.Type.HFIR             hCapturedFIR;
            NBioAPI.IndexSearch.FP_INFO[] fpInfo;


            NBioAPI.Type.WINDOW_OPTION m_WinOption = new NBioAPI.Type.WINDOW_OPTION();
            m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME;

            uint ID = 1;

            m_textFIR.TextFIR = Digital;
            m_IndexSearch.AddFIR(m_textFIR, ID, out fpInfo);

            uint dataCount;

            m_IndexSearch.GetDataCount(out dataCount);

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            uint ret = m_NBioAPI.Capture(out hCapturedFIR);

            if (ret != NBioAPI.Error.NONE)
            {
                //DisplayErrorMsg(ret);
                m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out m_textFIR, true);
            }

            m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);


            NBioAPI.IndexSearch.FP_INFO         fpInfo2;
            NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
            cbInfo0.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(myCallback);

            // Identify FIR to IndexSearch DB
            ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo2, cbInfo0);
            if (ret != NBioAPI.Error.NONE)
            {
                //DisplayErrorMsg(ret);
                //return fpInfo2.ID.ToString();
                return(m_textFIR.TextFIR);
            }

            return("");
        }
示例#6
0
        public int IdentificarBiometria(NBioAPI.Type.HFIR template)
        {
            Console.WriteLine($"Localizado digital ...");
            var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();

            NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
            var relogio = new Stopwatch();

            relogio.Start();
            var retorno = _nitgenSearchApi.IdentifyData(template, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH, out nitgenBiometria, cbInfo);

            relogio.Stop();
            Console.WriteLine($"Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}");
            return((int)nitgenBiometria.ID);
        }
        public Task <int> CriarTaskParaIdentificacaoBiometrica(NBioAPI.Type.HFIR 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;
                    if (token.IsCancellationRequested)
                    {
                        return 0;
                    }

                    var nitgenMainApi = new NBioAPI();
                    var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi);
                    nitgenSearchApi.InitEngine();
                    foreach (var biometria in contexto.Biometrias)
                    {
                        var biometriaNitgen = new NBioAPI.Type.FIR_TEXTENCODE {
                            TextFIR = biometria.TemplateISOText
                        };
                        NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria;
                        nitgenSearchApi.AddFIR(biometriaNitgen, (uint)biometria.Id, out informacaoBiometria);
                    }

                    var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                    cbInfo.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(Callback);
                    NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
                    var relogio = new Stopwatch();
                    relogio.Start();
                    var retorno = nitgenSearchApi.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH,
                                                               out nitgenBiometria, cbInfo);
                    relogio.Stop();
                    Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}");

                    return (int)nitgenBiometria.ID;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return 0;
                }
            }, contextoIdentificacao, token));
        }
示例#8
0
        private void btnIdentify_Click(object sender, System.EventArgs e)
        {
            NBioAPI.Type.HFIR hCapturedFIR;

            listResult.Items.Clear();

            // Get FIR data
            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            uint ret = m_NBioAPI.Capture(out hCapturedFIR);

            if (ret != NBioAPI.Error.NONE)
            {
                DisplayErrorMsg(ret);
                m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                return;
            }

            m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);


            uint nMax;

            m_IndexSearch.GetDataCount(out nMax);
            progressIdentify.Minimum = 0;
            progressIdentify.Maximum = Convert.ToInt32(nMax);

            NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
            cbInfo0.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(myCallback);

            // Identify FIR to IndexSearch DB
            NBioAPI.IndexSearch.FP_INFO fpInfo;
            ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo, cbInfo0);
            if (ret != NBioAPI.Error.NONE)
            {
                DisplayErrorMsg(ret);
                return;
            }

            // Add item to list of result
            ListViewItem listItem = new ListViewItem();

            listItem.Text = fpInfo.ID.ToString();
            listItem.SubItems.Add(fpInfo.FingerID.ToString());
            listItem.SubItems.Add(fpInfo.SampleNumber.ToString());
            listResult.Items.Add(listItem);
        }
        //Captura uma digital e verifica se bate com alguma FIR cadastrada no banco, caso sim, retorna o ID do usuário.
        //@return ID do usuário.
        public long verificaIdentidade()
        {
            //Variavel que vai estar com o template capturado pelo leitor
            NBioAPI.Type.HFIR digitalCapturada;

            //Captura a digital do promotor
            m_NBioAPI.Capture(out digitalCapturada, NBioAPI.Type.TIMEOUT.INFINITE, m_WinOption);

            //Cria variável do callback
            NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();

            //Cria variável que vai receber as informações da digital
            NBioAPI.IndexSearch.FP_INFO fpInfo;

            //Pega a digital capturada, e compara para ver se é encontrada uma digital compatível no banco
            m_IndexSearch.IdentifyData(digitalCapturada, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo, cbInfo0);

            //retorna o id do usuário como inteiro
            return(Convert.ToUInt32(fpInfo.ID));
        }
        public Task <int> CriarTaskParaIdentificacaoBiometrica(NBioAPI.Type.HFIR template, NBioAPI.IndexSearch mecanismoConfirmacao)
        {
            var contextoIdentificacao = new ContextoParaIndentificacaoBiometrica(Id, MecanismoBusca, mecanismoConfirmacao, Conversor, template, Biometrias);

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

            return(new Task <int>((parametroState) =>
            {
                var contexto = parametroState as ContextoParaIndentificacaoBiometrica;

                if (token.IsCancellationRequested)
                {
                    return 0;
                }

                var encontrou = false;
                var relogio = new Stopwatch();
                relogio.Start();
                foreach (var biometria in contexto.Biometrias)
                {
                    if (token.IsCancellationRequested)
                    {
                        relogio.Stop();
                        Console.WriteLine($"{contexto.Id} - cancelado pois encontrado em outra thread {relogio.Elapsed.TotalSeconds}");
                        return 0;
                    }


                    var payload = new NBioAPI.Type.FIR_PAYLOAD();

                    NBioAPI.Type.HFIR handler;
                    contexto.Conversor.FDxToNBioBSPEx(biometria.TemplateISO, (uint)biometria.TemplateISO.Length, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO,
                                                      NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY, out handler);

                    var retorno = contexto.MecanismoBusca.VerifyMatch(contexto.TemplateLido, handler, out encontrou, payload);
                    if (encontrou)
                    {
                        contexto.MecanismoConfirmacao.InitEngine();
                        NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria;
                        var ret = contexto.MecanismoConfirmacao.AddFIR(handler, (uint)biometria.Id, out informacaoBiometria);

                        var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                        NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
                        retorno = contexto.MecanismoConfirmacao.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH,
                                                                             out nitgenBiometria, cbInfo);

                        var idEncontrado = nitgenBiometria.ID;
                        contexto.MecanismoConfirmacao.RemoveUser((uint)biometria.Id);
                        if (idEncontrado > 0)
                        {
                            relogio.Stop();
                            Console.WriteLine($"{contexto.Id} - Localizado {biometria.Id} em {relogio.Elapsed.TotalSeconds}");
                            return (int)idEncontrado;
                        }
                    }
                }
                relogio.Stop();
                Console.WriteLine($"{contexto.Id} - Nenhuma biometria encontrada em {relogio.Elapsed.TotalSeconds}");
                return 0;
            }, contextoIdentificacao, token));
        }
        //Captura uma digital e verifica se bate com alguma FIR cadastrada no banco, caso sim, retorna o ID do usuário.
        //@return ID do usuário.
        public long verificaIdentidade()
        {
            //Variavel que vai estar com o template capturado pelo leitor
            NBioAPI.Type.HFIR digitalCapturada;

            //Captura a digital do promotor
            m_NBioAPI.Capture(out digitalCapturada, NBioAPI.Type.TIMEOUT.INFINITE, m_WinOption);

            //Cria variável do callback
            NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();

            //Cria variável que vai receber as informações da digital
            NBioAPI.IndexSearch.FP_INFO fpInfo;

            //Pega a digital capturada, e compara para ver se é encontrada uma digital compatível no banco
            m_IndexSearch.IdentifyData(digitalCapturada, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo, cbInfo0);

            //retorna o id do usuário como inteiro
            return Convert.ToUInt32(fpInfo.ID);
        }
    public void Identify_user()
    {
        NBioAPI.Type.HFIR hCapturedFIR;
        // Get FIR data
        m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
        uint ret = m_NBioAPI.Capture(out hCapturedFIR);

        if (ret != NBioAPI.Error.NONE)
        {
            Response.Write("" + ret);
            m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            return;
        }

        m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);


        uint nMax;

        m_IndexSearch.GetDataCount(out nMax);


        NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
        cbInfo0.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(myCallback);

        // Identify FIR to IndexSearch DB
        NBioAPI.IndexSearch.FP_INFO fpInfo;
        ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo, cbInfo0);
        if (ret != NBioAPI.Error.NONE)
        {
            //Response.Write("" + ret);
            lbldest.Text = "The FingerPrint does not match!!";
            return;
        }

        // Add item to list of result
        String    sell = "select * from tbl_userreg where user_username='******'";
        DataTable dt2  = obj.GetDataTable(sell);



        string selq = " select * from tbl_aadhar where userdb_aadharno='" + dt2.Rows[0]["user_aadharno"] + "' ";

        DataTable dtt1  = obj.GetDataTable(selq);
        string    selID = "select max(punch_id) as pid from tbl_punch where punch_aadharno='" + dt2.Rows[0]["user_aadharno"] + "'";
        DataTable dt1   = obj.GetDataTable(selID);
        string    selI  = "select * from tbl_punch where punch_id='" + dt1.Rows[0]["pid"] + "'";
        DataTable dt11  = obj.GetDataTable(selI);

        Session["valid"]    = Convert.ToInt32(dt1.Rows[0]["pid"]);
        Session["aadharno"] = Convert.ToInt32(dtt1.Rows[0]["userdb_aadharno"]);
        String up = "update tbl_punch set punch_dname='" + drpdest.SelectedValue + "' where punch_id='" + Session["valid"] + "'";

        obj.ExecuteCommand(up);

        String    se = "select * from tbl_station where station_no='" + drpdest.SelectedValue + "'";
        DataTable st = obj.GetDataTable(se);

        String    see = "select * from tbl_station where station_no='" + dt11.Rows[0]["punch_sname"] + "'";
        DataTable stt = obj.GetDataTable(see);
        String    sel = "select * from tbl_route where route_from='" + stt.Rows[0]["station_name"] + "' and route_to='" + st.Rows[0]["station_name"] + "'";
        DataTable dt  = obj.GetDataTable(sel);
        Double    r   = Convert.ToDouble(dt.Rows[0]["route_distance"]);

        String    sele = "select * from tbl_rate where distance=" + dt.Rows[0]["route_distance"] + "";
        DataTable dtt  = obj.GetDataTable(sele);
        Double    amt  = Convert.ToInt32(dtt.Rows[0]["rate"]) * Convert.ToInt32(dt11.Rows[0]["punch_tickets"]);

        String    ss  = "select * from tbl_vallet where useradhar_no='" + Session["aadharno"] + "'";
        DataTable val = obj.GetDataTable(ss);
        double    rr  = Convert.ToInt32(val.Rows[0]["val_amount"]);

        rr = rr - amt;

        String upp = "update tbl_punch set punch_dist='" + dt.Rows[0]["route_distance"] + "',punch_amt='" + amt + "' where punch_aadharno='" + Session["aadharno"] + "' and punch_id='" + Session["valid"] + "'";

        obj.ExecuteCommand(upp);
        string    selI2 = "select train_vcapacity from tbl_train where train_id='" + dt11.Rows[0]["punch_trainid"] + "'";
        DataTable dt112 = obj.GetDataTable(selI2);
        Double    a2    = Convert.ToInt32(dt112.Rows[0]["train_vcapacity"]) + Convert.ToInt32(dt11.Rows[0]["punch_tickets"]);
        String    sep   = "update tbl_train set train_vcapacity='" + a2 + "' where train_id='" + dt11.Rows[0]["punch_trainid"] + "'";

        obj.ExecuteCommand(sep);


        if (rr > 0)
        {
            String str = "update tbl_vallet set val_amount='" + rr + "' where useradhar_no='" + Session["aadharno"] + "'";
            obj.ExecuteCommand(str);
            Mail();

            Response.Redirect("thanks.aspx");
            //Response.Write("success");
        }
        else
        {
            Response.Write("<script>alert('Insufficient Balance')</script>");
        }
    }
示例#13
0
    public void Identify_user()
    {
        NBioAPI.Type.HFIR hCapturedFIR;
        // Get FIR data
        m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
        uint ret = m_NBioAPI.Capture(out hCapturedFIR);

        if (ret != NBioAPI.Error.NONE)
        {
            Response.Write("" + ret);
            m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            return;
        }

        m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);


        uint nMax;

        m_IndexSearch.GetDataCount(out nMax);


        NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
        cbInfo0.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(myCallback);

        // Identify FIR to IndexSearch DB
        NBioAPI.IndexSearch.FP_INFO fpInfo;
        ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo, cbInfo0);
        if (ret != NBioAPI.Error.NONE)
        {
            //Response.Write("" + ret);
            lblsource.Text = "The FingerPrint does not match!!";
            return;
        }

        // Add item to list of result

        String ins = "insert into tbl_punch(punch_trainid,punch_sname,punch_dname,punch_aadharno,punch_dist,punch_tickets,punch_amt,punch_date)values('" + drptrain.SelectedValue + "','" + drpsource.SelectedValue + "','0','" + Session["aadharno"] + "','0','" + txttickets.Text + "','0','" + DateTime.Now.ToShortDateString() + "')";

        obj.ExecuteCommand(ins);
        string    selID = "select max(punch_id) as pid from tbl_punch where punch_aadharno='" + Session["aadharno"] + "'";
        DataTable dt1   = obj.GetDataTable(selID);
        string    sel   = "select * from tbl_punch where punch_aadharno='" + Session["aadharno"] + "' and punch_id='" + dt1.Rows[0]["pid"] + "'";
        DataTable dt    = obj.GetDataTable(sel);
        string    selI  = "select train_vcapacity from tbl_train where train_id='" + dt.Rows[0]["punch_trainid"] + "'";
        DataTable dt11  = obj.GetDataTable(selI);

        if (Convert.ToInt32(dt11.Rows[0]["train_vcapacity"]) > 0)
        {
            Double a  = Convert.ToInt32(dt11.Rows[0]["train_vcapacity"]) - Convert.ToInt32(dt.Rows[0]["punch_tickets"]);
            String se = "update tbl_train set train_vcapacity='" + a + "' where train_id='" + dt.Rows[0]["punch_trainid"] + "'";
            obj.ExecuteCommand(se);
            Session["valid"]  = Convert.ToInt32(dt1.Rows[0]["pid"]);
            Session["source"] = drpsource.SelectedValue;
            Response.Write("success");
            //Label1.Text = Convert.ToString(Session["source"]);
            Response.Redirect("welcome.aspx");
        }
        else
        {
            Response.Write("<script>alert('Insufficient Seats')</script>");
        }
    }
示例#14
0
        private void btnIdentify_Click(object sender, System.EventArgs e)
        {
            NBioAPI.Type.HFIR hCapturedFIR;

            // Get FIR data
            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            uint ret = m_NBioAPI.Capture(out hCapturedFIR);

            if (ret != NBioAPI.Error.NONE)
            {
                DisplayErrorMsg(ret);
                m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                return;
            }

            m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);


            uint nMax;

            m_IndexSearch.GetDataCount(out nMax);

            NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
            // Identify FIR to IndexSearch DB
            NBioAPI.IndexSearch.FP_INFO fpInfo;
            ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo, cbInfo0);
            if (ret != NBioAPI.Error.NONE)
            {
                DialogResult confirm = MessageBox.Show("Digital não encontrada, tente novamente!",
                                                       "Usuário não identificado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation,
                                                       MessageBoxDefaultButton.Button2);
                if (confirm.ToString().ToUpper() == "OK")
                {
                    btnIdentify_Click(sender, e);
                }

                //DisplayErrorMsg(ret);
                return;
            }

            //instância da conexão
            string          config  = "server=localhost; database=lanche;  userid=root; password=vertrigo;";
            MySqlConnection conexao = new MySqlConnection(config);
            string          query   = "SELECT apelido FROM users where id =" + fpInfo.ID;
            //instância do comando onde passo
            //a query e a conexão
            MySqlCommand cmd = new MySqlCommand(query, conexao);

            //Abro conexão
            conexao.Open();
            //instância do leitor que recebe
            //o comando
            MySqlDataReader leitor = cmd.ExecuteReader();

            leitor.Read();
            //atribuo os valores do bd
            // Add item to list of result
            ListViewItem listItem = new ListViewItem();

            listItem.Text = fpInfo.ID.ToString();
            listItem.SubItems.Add(fpInfo.FingerID.ToString());
            listItem.SubItems.Add(leitor["apelido"].ToString());
            listResult.Items.Add(listItem);

            ////fecho conexão
            conexao.Close();
            Form2 newForm2 = new Form2(fpInfo.ID.ToString());

            newForm2.ShowDialog();

            btnIdentify_Click(sender, e);
        }