protected void btnPesquisar_Click(object sender, EventArgs e)
 {
     tabelaResultadoPesquisa.Visible = false;
     try
     {
         long   cpf = ObterCpf();
         string connectionString = WebConfigurationManager.ConnectionStrings["CadastroFuncionario"].ConnectionString;
         using (ContextoFuncionario db = _contextoFuncionarioFactory.Create())
         {
             Funcionario funcionario = db.Funcionarios
                                       .AsNoTracking()
                                       .FirstOrDefault(func => func.Cpf == cpf);
             if (funcionario == null)
             {
                 popup.Exibir("Erro", "CPF não encontrado");
                 return;
             }
             funcionario.Funcao = db.Funcoes
                                  .AsNoTracking()
                                  .FirstOrDefault(func => func.FuncionarioID == funcionario.Id);
             ExibirResultadoPesquisa(funcionario);
         }
     }
     catch (ExcecaoFormularioInvalido excecao)
     {
         popup.Exibir("Erro", excecao.Message);
     }
     catch (Exception execao)
     {
         _logger.Log(DateTime.Now, execao.ToString());
         popup.Exibir("Erro", "Oops! Ocorreu um erro durante a pesquisa");
     }
 }
 private void CadastrarFuncionario(Funcionario dadosPessoais)
 {
     using (ContextoFuncionario db = _contextoFuncionarioFactory.Create())
     {
         bool jaCadastrdado = db.Funcionarios
                              .AsNoTracking()
                              .Where(funcionario => funcionario.Cpf == dadosPessoais.Cpf)
                              .Select(funcionario => funcionario.Id)
                              .FirstOrDefault() != 0;
         if (jaCadastrdado)
         {
             return;
         }
         db.Funcionarios.Add(dadosPessoais);
         db.SaveChanges();
     }
 }