private bool CadastraADV()
    {
        // Objetos
        Advogado    adv      = new Advogado();
        Contato     con      = new Contato();
        Endereco    end      = new Endereco();
        Cidade      cid      = new Cidade();
        Estado      est      = new Estado();
        ContatoDB   conDB    = new ContatoDB();
        EnderecoDB  endDB    = new EnderecoDB();
        AdvogadoDB  advDB    = new AdvogadoDB();
        EstadoCivil estCivil = new EstadoCivil();

        //Objeto da classe culture info, permite utulizar "Culturas de uma certo pais" ex: Formato como se escreve a data dd/mm/yyyy ou yyy/mm/dd
        CultureInfo PrimeiraLetra = Thread.CurrentThread.CurrentCulture;

        //contato
        con.Nome     = PrimeiraLetra.TextInfo.ToTitleCase(txtNome.Text);
        con.Nome     = con.Nome.Replace("De ", "de ").Replace("Da ", "da ").Replace("Das ", "das ").Replace("Dos ", "dos ");
        con.Telefone = txtTelefone.Text;
        con.Celular  = txtCelular.Text;
        con.Email    = txtEmail.Text;

        //advogado

        adv.Cpf            = txtCPF.Text;
        adv.Rg             = txtRg.Text;
        adv.OAB            = txtOab.Text;
        adv.DataNascimento = Convert.ToDateTime(txtDataNascimento.Text);
        adv.Sexo           = ddlSexo.SelectedItem.Value;
        adv.Senha          = Criptografia.GetSHA256(txtSenha.Text);
        adv.UserName       = txtLogin.Text;
        estCivil.Codigo    = Convert.ToInt32(ddlEstadoCivil.SelectedItem.Value);

        adv.EstadoCivil = estCivil;

        //endereco
        cid.Codigo      = Convert.ToInt32(ddlCidade.SelectedItem.Value);
        end.Cidade      = cid;
        end.Bairro      = PrimeiraLetra.TextInfo.ToTitleCase(txtBairro.Text);
        end.Bairro      = end.Bairro.Replace("De ", "de ").Replace("Da ", "da ").Replace("Das ", "das ").Replace("Dos ", "dos ");
        end.Cep         = txtCEP.Text;
        end.Logradouro  = PrimeiraLetra.TextInfo.ToTitleCase(txtEndereco.Text);
        end.Logradouro  = end.Logradouro.Replace("De ", "de ").Replace("Da ", "da ").Replace("Das ", "das ").Replace("Dos ", "dos ");
        end.Numero      = txtNumero.Text;
        end.Complemento = txtComplemento.Text;

        //Persistencia

        if (!conDB.InsertSemFK(con))
        {
            lblMensagem.Text = "Erro ao inserir dados, favor contatar o fabricante";
            divmensagem.Attributes["class"] = "alert alert-danger";
            return(false);
        }
        else if (!endDB.Insert(end))
        {
            lblMensagem.Text = "Erro ao inserir dados, favor contatar o fabricante";
            divmensagem.Attributes["class"] = "alert alert-danger";
            return(false);
        }
        else
        {
            end.Codigo = endDB.GetLastId(end);
            con.Codigo = conDB.GetLastId(con);

            adv.Endereco      = end;
            adv.ContatoPessoa = con;

            if (!advDB.Insert(adv))
            {
                lblMensagem.Text = "Erro ao inserir dados, favor contatar o fabricante";
                divmensagem.Attributes["class"] = "alert alert-danger";
                return(false);
            }
            else
            {
                adv = advDB.GetLastId(con.Codigo);
                con.PessoaAdvogado = adv;

                if (!conDB.UpdateCodigoAdvogado(con))
                {
                    lblMensagem.Text = "Erro ao inserir dados, favor contatar o fabricante";
                    divmensagem.Attributes["class"] = "alert alert-danger";
                    return(false);
                }
                else
                {
                    lblMensagem.Text = "Advogado Cadastrado realizado com sucesso!";
                    divmensagem.Attributes["class"] = "alert alert-success";
                    return(true);
                }
            }
        }
    }