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); }
public FrmAutenticaRede(string Usuario) { InitializeComponent(); CAutentica.CAutenticaClient oProxy = new CAutentica.CAutenticaClient(); CPonto.CPontoClient oCPonto = new CPonto.CPontoClient(); CPonto.USUARIO oUsuario = oCPonto.SelecionaUsuarioRede(Usuario); string UsuarioRede = oUsuario.USUSUARIOREDE; sUsuario = UsuarioRede; TxtUsuario.Text = UsuarioRede; oProxy.Close(); }
private void BtnLiberacaoForcada_Click(object sender, EventArgs e) { FrmAutenticaRede oFrm = new FrmAutenticaRede(); bool Autenticado = false; CPonto.USUARIO oUsuario; if (ChkPoSenha.Checked == true) { oFrm.ShowDialog(); } if (oFrm.Autenticado || Autenticado) { oUsuario = oFrm.Usuario; if ((bool)oUsuario.USAdministrador || (bool)oUsuario.USSeguranca) { //programar para liberar a porta de forma forçada FrmLiberaForcado oFrmLF = new FrmLiberaForcado(oUsuario.USCODIGO, CodigoPonto, char.Parse(Tipo)); timer1.Enabled = false; oFrmLF.ShowDialog(); if (oFrmLF.Libera) { //Registrar que o acesso foi autorizado e acionar a porta elétrica para liberação LblDataHora.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); PctSemSinal.Visible = false; PctVerde.Visible = true; CPonto.CPontoClient oProxy = new CPonto.CPontoClient(); CarregaDadosUsuario(oUsuario.USCODIGO, oProxy, out oUsuario); oProxy.Close(); AcionaTranca(); if (oPonto.PoCartaoRFID) { SerialCartao.Close(); } } timer1.Enabled = true; } else { MessageBox.Show("Esse usuário não está habilitado a liberar um acesso de forma forçada.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }
private void RegistrarAcesso(CPonto.CPontoClient oProxy, int CodigoCartao, int CodigoUsuario, DateTime DataAcesso, bool Negado) { CPonto.ACESSOPONTOCONTROLE oAcesso = new CPonto.ACESSOPONTOCONTROLE(); oAcesso.APAcessoForcado = false; oAcesso.APCodigoPontoControle = CodigoPonto; oAcesso.APTipoPontoControle = char.Parse(Tipo); if (CodigoCartao > 0) { oAcesso.APCodigoCartao = CodigoCartao; } else { oAcesso.APCodigoCartao = null; } oAcesso.APCodigoUsuarioInterrompeAlarme = null; oAcesso.APCodigoUsuarioLiberaForcado = null; oAcesso.APCodigoUsuarioAcesso = CodigoUsuario; oAcesso.APDataAcesso = DataAcesso; oAcesso.APNegado = Negado; oProxy.IncluirAcesso(oAcesso); }
private void CarregaDadosUsuario(int Codigo, CPonto.CPontoClient oProxy, out CPonto.USUARIO oUsuario) { oUsuario = oProxy.SelecionaUsuario(Codigo); string strCodigo; if (oUsuario.USTIPO == char.Parse("T")) { //Terceirizado CPonto.TERCEIRO oTerceiro = oProxy.SelecionaTerceiro((int)oUsuario.USCODIGOTERCEIRO); strCodigo = oTerceiro.TeCodigo.ToString("00000000"); LblUsuario.Text = strCodigo + " - " + oTerceiro.TeNome; PicFoto.ImageLocation = DownloadFile(strCodigo + ".jpg", 1); } else if (oUsuario.USTIPO == char.Parse("E")) { //Empregado CPonto.FUNCIONARIO oFuncionario = oProxy.SelecionaFuncionario((int)oUsuario.USMATFUNC); strCodigo = oFuncionario.FUMATFUNC.ToString("00000000"); LblUsuario.Text = strCodigo + " - " + oFuncionario.FUNOMFUNC; PicFoto.ImageLocation = DownloadFile(strCodigo + ".jpg", 0); } else if (oUsuario.USTIPO == char.Parse("S")) { //Estagiário CPonto.ESTAGIARIO oEstagiario = oProxy.SelecionaEstagiario((int)oUsuario.USCODIGOESTAGIARIO); strCodigo = oEstagiario.ESCodigo.ToString("00000000"); LblUsuario.Text = strCodigo + " - " + oEstagiario.ESNome; PicFoto.ImageLocation = DownloadFile(strCodigo + ".jpg", 0); } else if (oUsuario.USTIPO == char.Parse("V")) { //Visitante CPonto.VISITANTE oVisitante = oProxy.SelecionaVisitante((int)oUsuario.USCODIGOVISITANTE); strCodigo = oVisitante.ViCodigo.ToString("00000000"); LblUsuario.Text = strCodigo + " - " + oVisitante.ViNome; PicFoto.ImageLocation = DownloadFile(strCodigo + ".jpg", 2); } }
private void BtnConfirmar_Click(object sender, EventArgs e) { if (TxtJustificativa.Text.Length < 10) { MessageBox.Show("Preencha a justificativa com no mínimo dez (10) caracteres."); TxtJustificativa.Focus(); } else { CPonto.ACESSOPONTOCONTROLE oAcesso = new CPonto.ACESSOPONTOCONTROLE(); oAcesso.APAcessoForcado = true; oAcesso.APCodigoPontoControle = PontoControle; oAcesso.APCodigoUsuarioLiberaForcado = CodigoUsuario; oAcesso.APDataAcesso = DateTime.Now; oAcesso.APMotivoAcessoForcado = TxtJustificativa.Text; oAcesso.APTipoPontoControle = TipoPontoControle; CPonto.CPontoClient oProxy = new CPonto.CPontoClient(); oProxy.IncluirAcesso(oAcesso); oProxy.Close(); bolLibera = true; this.Close(); } }
private void TimeCartao_Tick(object sender, EventArgs e) { string MsgAdicional = ""; if (SerialCartao.IsOpen == false) { SerialCartao.Open(); } LblMsg.Text = "Passe o cartão de identificação CId_S no leitor"; this.Refresh(); if (SerialCartao.BytesToRead > 0) { TimeCartao.Enabled = false; string NumeroCartao = SerialCartao.ReadExisting().ToString().Substring(3, 5); SerialCartao.Close(); //Fecha a porta para não receber mais nada. CPonto.CPontoClient oProxy = new CPonto.CPontoClient(); CPonto.CARTAO oCartao; CPonto.USUARIO oUsuario = null; CPonto.CARTAOUSUARIO oCartaoUsuario; int CodigoUsuario; oCartao = oProxy.SelecionaCartao(out oCartaoUsuario, NumeroCartao); bool PossuiAcesso = false; if (oCartao == null) { nTentativas += 1; if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } LblMsg.Text = "Cartão de identificação CId_S inválido ou não cadastrado no sistema. Entrar em contato com o departamento de Segurança Patrimonial."; } else { if ((bool)oCartao.CrBloqueado) { if (MatTentou != oCartaoUsuario.CSCodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario); LblMsg.Text = "O cartão de identificação do usuário foi bloqueado pelo motivo: " + oCartao.CrMotivoBloqueio + "."; } else { try { PossuiAcesso = oProxy.PossuiPermissaoPonto(oCartaoUsuario.CSCodigoUsuario, CodigoPonto); } catch (Exception ex) { PossuiAcesso = false; MsgAdicional = ex.Message; } if (PossuiAcesso) { if (oPonto.PoBiometria) { LblMsg.Text = "Coloque o dedo cadastrado no leitor biométrico da impressão digital."; this.Refresh(); //Implementar o acesso biométrico CPonto.HASHDIGITAL[] oListaHash = oProxy.SelecionaHashUsuario(oCartaoUsuario.CSCodigoUsuario); m_NBioAPI = new NBioAPI(); uint ret; oIndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); ret = oIndexSearch.InitEngine(); if (ret != NBioAPI.Error.NONE) { MsgErro(ret); } oIndexSearch.ClearDB(); foreach (CPonto.HASHDIGITAL oHash in oListaHash) { NBioAPI.Type.FIR_TEXTENCODE oFir = new NBioAPI.Type.FIR_TEXTENCODE(); oFir.TextFIR = oHash.HaCredencialBiometricaTextual; NBioAPI.IndexSearch.FP_INFO[] oInfo; oIndexSearch.AddFIR(oFir, uint.Parse(oHash.HaCodigo.ToString()), out oInfo); } if (AcessoBiometrico(out CodigoUsuario, oProxy, false)) { PossuiAcesso = true; } else { PossuiAcesso = false; } } if (oPonto.PoSenha) { //Acesso via senha de rede. FrmAutenticaRede oFrm = new FrmAutenticaRede(); oFrm.ShowDialog(); if (oFrm.Autenticado) { oUsuario = oFrm.Usuario; if (oUsuario.USCODIGO != oCartaoUsuario.CSCodigoUsuario) { PossuiAcesso = false; RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oUsuario.USCODIGO, DateTime.Parse(LblDataHora.Text), true); if (MatTentou != oUsuario.USCODIGO) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = oUsuario.USCODIGO; CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario); LblMsg.Text = "O usuário que se autenticou é diferente do usuário a qual pertence o crachá."; } } else { PossuiAcesso = false; } } if (oUsuario == null) { oUsuario = oProxy.SelecionaUsuario(oCartaoUsuario.CSCodigoUsuario); } NumeroDia += 1; if (VerificaEquipamentos(oProxy, oUsuario) == false) { CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario); RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Now, true); if (MatTentou != oCartaoUsuario.CSCodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = oCartaoUsuario.CSCodigoUsuario; timer1.Enabled = true; return; } else { PossuiAcesso = true; } if (PossuiAcesso) { //Registrar que o acesso foi autorizado e acionar a porta elétrica para liberação LblDataHora.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); PctSemSinal.Visible = false; PctVerde.Visible = true; RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Parse(LblDataHora.Text), false); CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario); AcionaTranca(); } else { CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario); RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Parse(LblDataHora.Text), true); if (MatTentou != oCartaoUsuario.CSCodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = oCartaoUsuario.CSCodigoUsuario; LblMsg.Text = "O Acesso não foi autorizado."; } } else { CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario); RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Now, true); if (MatTentou != oCartaoUsuario.CSCodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = oCartaoUsuario.CSCodigoUsuario; LblMsg.Text = "O Usuário não possui acesso ao ponto de controle PCAP_S. Entrar em contato com a segurança patrimonial." + MsgAdicional + "."; } } } oProxy.Close(); //Libera o timer que limpa os dados e habilita novamente a leitura ou entaõ, libera o timer do cartao; timer1.Enabled = true; if (PossuiAcesso) { PctVerde.Visible = true; PctVermelho.Visible = false; PctAmarelo.Visible = false; PctSemSinal.Visible = false; } else { PctVerde.Visible = false; PctVermelho.Visible = true; PctAmarelo.Visible = false; PctSemSinal.Visible = false; } } }
private void ComandoTimeSemCartao() { int CodigoUsuario; CPonto.CPontoClient oProxy = new CPonto.CPontoClient(); CPonto.USUARIO oUsuario = null; string MsgAdicional = ""; bool PossuiAcesso = false; LblMsg.Text = "Coloque o dedo cadastrado no leitor biométrico da impressão digital."; this.Refresh(); //return; if (AcessoBiometrico(out CodigoUsuario, oProxy, true)) { LblMsg.Text = ""; this.Refresh(); if (ChkPoSenha.Checked) { FrmAutenticaRede oFrm = new FrmAutenticaRede(CodigoUsuario.ToString()); oFrm.ShowDialog(); if (oFrm.Autenticado) { try { PossuiAcesso = oProxy.PossuiPermissaoPonto(CodigoUsuario, CodigoPonto); } catch (Exception Ex) { MsgAdicional = Ex.Message; } if (PossuiAcesso) { //Registrar que o acesso foi autorizado e acionar a porta elétrica para liberação LblDataHora.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); PctSemSinal.Visible = false; PctVerde.Visible = true; RegistrarAcesso(oProxy, 0, CodigoUsuario, DateTime.Now, false); CarregaDadosUsuario(CodigoUsuario, oProxy, out oUsuario); AcionaTranca(); } else { RegistrarAcesso(oProxy, 0, CodigoUsuario, DateTime.Now, true); if (MatTentou != CodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = CodigoUsuario; LblMsg.Text = "O usuário USR não possui acesso ao ponto de controle PCAP_S. Entrar em contato com o departamento de segurança patrimonial." + MsgAdicional + "."; //Registrar a tentativa inválida de sucesso e incrementar o sinal da sirene, caso tenha } } else { RegistrarAcesso(oProxy, 0, CodigoUsuario, DateTime.Now, true); if (MatTentou != CodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = CodigoUsuario; LblMsg.Text = "Usuário ou senha inválido! Entrar em contato com a segurança patrimonial."; } } else { try { PossuiAcesso = oProxy.PossuiPermissaoPonto(CodigoUsuario, CodigoPonto); } catch (Exception Ex) { MsgAdicional = Ex.Message; } if (PossuiAcesso) { if (oUsuario == null) { oUsuario = oProxy.SelecionaUsuario(CodigoUsuario); } NumeroDia += 1; if (VerificaEquipamentos(oProxy, oUsuario) == false) { RegistrarAcesso(oProxy, 0, CodigoUsuario, DateTime.Now, true); if (MatTentou != CodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = CodigoUsuario; return; } else { //Registrar que o acesso foi autorizado e acionar a porta elétrica para liberação LblDataHora.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); PctSemSinal.Visible = false; PctVerde.Visible = true; RegistrarAcesso(oProxy, 0, CodigoUsuario, DateTime.Now, false); CarregaDadosUsuario(CodigoUsuario, oProxy, out oUsuario); AcionaTranca(); } } else { RegistrarAcesso(oProxy, 0, CodigoUsuario, DateTime.Now, true); if (MatTentou != CodigoUsuario) { nTentativas = 1; } else { nTentativas += 1; } if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } MatTentou = CodigoUsuario; LblMsg.Text = "O usuário USR não possui acesso ao ponto de controle PCAP_S. Entrar em contato com o departamento de segurança patrimonial."; } } } else { nTentativas += 1; if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso) { AcionaSirene(); } if (CodigoUsuario == 0) { LblMsg.Text = "Não foi possível identificar o usuário USR. Entrar em contato com o departamento de segurança patrimonial."; } else { LblMsg.Text = "O usuário USR não possui acesso ao ponto de controle PCAP_S. Entrar em contato com o departamento de segurança patrimonial."; } } oProxy.Close(); timer1.Enabled = true; }
private bool VerificaEquipamentos(CPonto.CPontoClient oProxy, CPonto.USUARIO oUsuario) { NumeroEquipamento = ""; string TAGEQUIPAMENTO = ""; bool ConseguiuLer = false; if (ChkEquipObrigatorio.Checked) { var oListaObrigatorio = from p in oListaEquipamentoPonto where p.EPObrigatorio == true select p; foreach (CPonto.vw_EquipamentoPonto oEquipamento in oListaObrigatorio) { //Caso a unidade não exija autenticação via crachá, solicitará os equipamentos de segurança //mas, para isso, precisa abrir a serial e fechar SerialCartao.Open(); LblMsg.Text = "Passe o equipamento " + oEquipamento.TEDescricao + " no leitor RFID. "; this.Refresh(); //O Delay será de 100 milissegundos para ver se a porta seria tem algo. //com 100 voltas, o sistema aguardará 10 segundos para a leitura do equipamento, senão, dará como leitura inválida e encerrará o processo. ConseguiuLer = false; for (int i = 0; i < 100; i++) { Delay(100); if (SerialCartao.BytesToRead > 9) { TAGEQUIPAMENTO = SerialCartao.ReadExisting().ToString().Substring(3, 5); ConseguiuLer = true; break; } } //Caso não tenha conseguido ler o equipamento, o retorno será falso if (ConseguiuLer == false) { LblMsg.Text = "Equipamento " + oEquipamento.TEDescricao + " não informado."; this.Refresh(); SerialCartao.Close(); return(false); } else { var Equipamento = oProxy.ListaEquipamentoUsuarioTAG(oUsuario.USCODIGO, TAGEQUIPAMENTO); if (Equipamento == null) { LblMsg.Text = "O equipamento informado não corresponde a um " + oEquipamento.TEDescricao + " relacionado com o usuário. "; this.Refresh(); SerialCartao.Close(); return(false); } } SerialCartao.Close(); } } if (ChkEquipRandomico.Checked) { var res = from p in OrdemVerificaRandomico where p == NumeroDia select p; if (res.Count() > 0) { var oListaRandomico = from p in oListaEquipamentoPonto where p.EPObrigatorio == false select p; foreach (CPonto.vw_EquipamentoPonto oEquipamento in oListaRandomico) { //Caso a unidade não exija autenticação via crachá, solicitará os equipamentos de segurança //mas, para isso, precisa abrir a serial e fechar SerialCartao.Open(); //****************************************************************************************** LblMsg.Text = "Você foi sorteado para passar os equipamentos pela ordem de acesso. Passe o equipamento " + oEquipamento.TEDescricao + " no leitor RFID. "; this.Refresh(); //O Delay será de 100 milissegundos para ver se a porta seria tem algo. //com 100 voltas, o sistema aguardará 10 segundos para a leitura do equipamento, senão, dará como leitura inválida e encerrará o processo. ConseguiuLer = false; for (int i = 0; i < 100; i++) { Delay(100); if (SerialCartao.BytesToRead > 0) { TAGEQUIPAMENTO = SerialCartao.ReadExisting().ToString().Substring(3, 5); ConseguiuLer = true; break; } } //Caso não tenha conseguido ler o equipamento, o retorno será falso if (ConseguiuLer == false) { LblMsg.Text = "Equipamento " + oEquipamento.TEDescricao + " não informado."; this.Refresh(); SerialCartao.Close(); return(false); } else { var Equipamento = oProxy.ListaEquipamentoUsuarioTAG(oUsuario.USCODIGO, TAGEQUIPAMENTO); if (Equipamento == null) { LblMsg.Text = "O equipamento informado não corresponde a um " + oEquipamento.TEDescricao + " relacionado com o usuário. "; this.Refresh(); SerialCartao.Close(); return(false); } } SerialCartao.Close(); } } } LblMsg.Text = ""; this.Refresh(); return(true); }
private void FrmPrincipal_Load(object sender, EventArgs e) { Tipo = ACESSO.PONTOCONTROLE.Classes.Registro.Tipo(); if (Tipo == null) { FrmConfigura oFrm = new FrmConfigura(); oFrm.ShowDialog(); } else { if (MessageBox.Show("Deseja configurar a estação? ", ProductName, MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { FrmConfigura oFrm = new FrmConfigura(); oFrm.ShowDialog(); } } try { PortaSirene = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSirene(); PortaSerial = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSerial(); } catch (Exception ex) { FrmConfigura oFrm = new FrmConfigura(); oFrm.ShowDialog(); PortaTranca = ACESSO.PONTOCONTROLE.Classes.Registro.PortaTranca(); PortaSirene = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSirene(); PortaSerial = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSerial(); } CodigoPonto = ACESSO.PONTOCONTROLE.Classes.Registro.CodigoPonto(); Tipo = ACESSO.PONTOCONTROLE.Classes.Registro.Tipo(); CPonto.CPontoClient oProxy = new CPonto.CPontoClient(); oPonto = oProxy.SelecionaPKPontoControle(CodigoPonto, Tipo); if (Tipo == "E") { oListaEquipamentoPonto = oProxy.ListaEquipamentoPonto(CodigoPonto); } if (oListaEquipamentoPonto == null) { GbxEquipamento.Visible = false; } else { if (oListaEquipamentoPonto.Count() == 0) { GbxEquipamento.Visible = false; } else { int contador; //PERCORRE OS EQUIPAMENTOS, VERIFICANDO SE TEM OBRIGATÓRIOS E RANDÔMICOS. for (contador = 0; contador < oListaEquipamentoPonto.Count(); contador++) { if (oListaEquipamentoPonto[contador].EPObrigatorio != null) { if ((bool)oListaEquipamentoPonto[contador].EPObrigatorio) { ChkEquipObrigatorio.Checked = true; } } if (oPonto.PoQtdVerificaEquip != null) { if (oPonto.PoQtdVerificaEquip > 0) { if ((bool)oListaEquipamentoPonto[contador].EPObrigatorio == null) { ChkEquipRandomico.Checked = true; } else { if ((bool)oListaEquipamentoPonto[contador].EPObrigatorio == false) { ChkEquipRandomico.Checked = true; } } } } } //FIM DA VERIFICAÇÃO SE O PONTO DE CONTROLE POSSUI EQUIPAMENTOS ASSOCIADOS if (ChkEquipRandomico.Checked) { OrdemVerificaRandomico = ListaRandomizada((int)oPonto.PoQtdMediaPessoas, (int)oPonto.PoQtdVerificaEquip); } } } ChkPoBiometria.Checked = oPonto.PoBiometria; ChkPoCartaoRFID.Checked = oPonto.PoCartaoRFID; ChkPoSenha.Checked = oPonto.PoSenha; LblIdentificacao.Text = oPonto.PoNome; if (oPonto.PoDisparaAlarme) { LimiteTentativaAcesso = (int)oPonto.PoTentativaIndevidaDisparaAlarme; } BtnLiberacaoForcada.Enabled = oPonto.PoPermiteLiberacaoForcada; SerialCartao.PortName = PortaSerial; if (ChkPoCartaoRFID.Checked) { //Abre a porta serial para receber o código do Cartão. SerialCartao.PortName = PortaSerial; SerialCartao.Close(); try { SerialCartao.Open(); } catch (Exception ex) { MessageBox.Show("Confirgure a porta serial do leitor de cartão (" + ex.Message + ")."); FrmConfigura oFrm = new FrmConfigura(); oFrm.ShowDialog(); PortaSerial = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSerial(); SerialCartao.PortName = PortaSerial; SerialCartao.Open(); } SerialCartao.DiscardOutBuffer(); SerialCartao.DiscardInBuffer(); TimeCartao.Enabled = true; } else { m_NBioAPI = new NBioAPI(); uint ret; oIndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); ret = oIndexSearch.InitEngine(); if (ret != NBioAPI.Error.NONE) { MsgErro(ret); } oIndexSearch.ClearDB(); CPonto.HASHDIGITAL[] Lista = oProxy.ListaHash(); foreach (CPonto.HASHDIGITAL oHash in Lista) { NBioAPI.Type.FIR_TEXTENCODE oFir = new NBioAPI.Type.FIR_TEXTENCODE(); oFir.TextFIR = oHash.HaCredencialBiometricaTextual; NBioAPI.IndexSearch.FP_INFO[] oInfo; oIndexSearch.AddFIR(oFir, uint.Parse(oHash.HaCodigoUsuario.ToString()), out oInfo); } TimeSemCartao.Enabled = true; } oProxy.Close(); }