public void GetHierarquias(Pessoa pessoa, TipoPessoa tipoPessoa)
    {
        tdTriviewHierarquia.InnerHtml = string.Empty;
        tdTriviewHierarquia.Controls.Clear();
        if (CType.Exist(pessoa))
        {
            this.pessoa = pessoa;
            List<List<int>> estruturaHierarquia = new List<List<int>>();
            if (tipoPessoa == TipoPessoa.Fisica)
            {
                var pessoaFisicaJuridica = new PessoaFisicaJuridica(pessoa.Fisica).Find();
                foreach (var pj in pessoaFisicaJuridica)
                {
                    var pessoaJuridica = ((PessoaFisicaJuridica)pj).PessoaJuridica.Pessoa;
                    estruturaHierarquia.Add(pessoaJuridica.GetListIdEstruturaHierarquia());
                }
            }
            else estruturaHierarquia.Add(pessoa.GetListIdEstruturaHierarquia());

            if (estruturaHierarquia.Count > 0)
            {
                foreach(var eh in estruturaHierarquia)
                    loadTree((List<int>)eh);
            }
            if (tdTriviewHierarquia.Controls.Count < 1)
                tdTriviewHierarquia.InnerHtml = "Pessoa " + pessoa.Nome + ", não está cadastrado na estrutura de hierarquias";
            return;
        }
        tdTriviewHierarquia.InnerHtml = "Você não está cadastrado em uma estrutura de hierarquias";
    }
 protected void DeletePessoaFisicaJuridica(int idPessoaFisicaJuridica)
 {
     try
     {
         var PessoaFisicaJuridica = new PessoaFisicaJuridica();
         PessoaFisicaJuridica.IDPessoaFisicaJuridica = idPessoaFisicaJuridica;
         PessoaFisicaJuridica.Delete();
         GetPessoaFisicaJuridicas();
     }
     catch (Exception err)
     {
         Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "<script>alert('" + FormatError.FormatMessageForJAlert(err.Message) + "')</script>");
     }
 }
    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        var PessoaFisicaJuridica = new PessoaFisicaJuridica();
        try
        {
            if (txtId.Text != "")
            {
                PessoaFisicaJuridica.IDPessoaFisicaJuridica = int.Parse(txtId.Text);
                PessoaFisicaJuridica.Get();
            }

            PessoaFisicaJuridica.IDPessoaFisica = int.Parse(txtIDPessoaFisica.Text);
        PessoaFisicaJuridica.IDPessoaJuridica = int.Parse(txtIDPessoaJuridica.Text);

            PessoaFisicaJuridica.Save();
            GetPessoaFisicaJuridica((int)PessoaFisicaJuridica.IDPessoaFisicaJuridica);

            Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "<script>alert('Registro salvo.')</script>");
        }
        catch (Exception err)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "<script>alert('" + FormatError.FormatMessageForJAlert(err.Message) + "')</script>");
        }
    }
    private void loadLists(PessoaFisica pessoaFisica)
    {
        listPessoasJuridicas.DataSource = new PessoaJuridica().FindTop(txtData.Text);
        listPessoasJuridicas.DataTextField = "RazaoSocial";
        listPessoasJuridicas.DataValueField = "IDPessoaJuridica";
        listPessoasJuridicas.DataBind();

        var pessoasJuridicasAdded = new PessoaFisicaJuridica().FindPessoasJuridicas(pessoaFisica);
        listPessoasJuridicasAdd.DataSource = pessoasJuridicasAdded;
        listPessoasJuridicasAdd.DataTextField = "RazaoSocial";
        listPessoasJuridicasAdd.DataValueField = "IDPessoaJuridica";
        listPessoasJuridicasAdd.DataBind();

        foreach (var pessoaJuridica in pessoasJuridicasAdded)
        {
            var listItem = listPessoasJuridicas.Items.FindByValue(pessoaJuridica.IDPessoaJuridica.ToString());
            listPessoasJuridicas.Items.Remove(listItem);
        }
    }
    private void saveParceiros(PessoaFisica pessoaFisica)
    {
        var PessoaFisicaJuridicaDel = new PessoaFisicaJuridica();
        try
        {
            PessoaFisicaJuridicaDel.IsTransaction = true;
            PessoaFisicaJuridicaDel.PessoaFisica = pessoaFisica;
            PessoaFisicaJuridicaDel.Delete();

            foreach (ListItem item in listPessoasJuridicasAdd.Items)
            {
                var pessoaJuridicaAdd = new PessoaJuridica(int.Parse(item.Value));
                pessoaJuridicaAdd.Get();
                var PessoaFisicaJuridica = new PessoaFisicaJuridica();
                PessoaFisicaJuridica.Transaction = PessoaFisicaJuridicaDel.Transaction;
                PessoaFisicaJuridica.PessoaFisica = pessoaFisica;
                PessoaFisicaJuridica.PessoaJuridica = pessoaJuridicaAdd;
                PessoaFisicaJuridica.Get();
                PessoaFisicaJuridica.Save();
            }

            PessoaFisicaJuridicaDel.Commit();
            loadTab();
        }
        catch (Exception err)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "<script>alert('" + FormatError.FormatMessageForJAlert(err.Message) + "')</script>");
            PessoaFisicaJuridicaDel.Rollback();
        }
    }
    private void loadPessoasFisicas()
    {
        var pessoaJuridica = new PessoaJuridica();
        pessoaJuridica.Pessoa = new Pessoa(int.Parse(txtIdPessoa.Text));
        pessoaJuridica.Get();

        if (pessoaJuridica.IDPessoaJuridica != null)
        {
            var PessoasFisicasAdded = new PessoaFisicaJuridica().FindPessoasFisicas(pessoaJuridica);
            listPessoasFisicasAdd.DataSource = PessoasFisicasAdded;
            listPessoasFisicasAdd.DataTextField = "PessoaNome";
            listPessoasFisicasAdd.DataValueField = "IDPessoaFisica";
            listPessoasFisicasAdd.DataBind();

            findTopFisica();
        }
    }
    private void GetPessoaFisicaJuridica(int idPessoaFisicaJuridica)
    {
        dvSalvarPessoaFisicaJuridica.Visible = true;
        dvListarPessoaFisicaJuridicas.Visible = false;

        var PessoaFisicaJuridica = new PessoaFisicaJuridica();
        PessoaFisicaJuridica.IDPessoaFisicaJuridica = idPessoaFisicaJuridica;
        PessoaFisicaJuridica.Get();

        txtId.Text = PessoaFisicaJuridica.IDPessoaFisicaJuridica.ToString();
        txtIDPessoaFisica.Text = PessoaFisicaJuridica.IDPessoaFisica.ToString();
        txtIDPessoaJuridica.Text = PessoaFisicaJuridica.IDPessoaJuridica.ToString();
    }