private void saveParceiros(PessoaJuridica pessoaJuridica) { var PessoaFisicaJuridicaDel = new PessoaFisicaJuridica(); try { PessoaFisicaJuridicaDel.IsTransaction = true; PessoaFisicaJuridicaDel.PessoaJuridica = pessoaJuridica; PessoaFisicaJuridicaDel.Delete(); foreach (ListItem item in listPessoasFisicasAdd.Items) { var pessoaFisicaAdd = new PessoaFisica(int.Parse(item.Value)); pessoaFisicaAdd.Get(); var PessoaFisicaJuridica = new PessoaFisicaJuridica(); PessoaFisicaJuridica.Transaction = PessoaFisicaJuridicaDel.Transaction; PessoaFisicaJuridica.PessoaJuridica = pessoaJuridica; PessoaFisicaJuridica.PessoaFisica = pessoaFisicaAdd; 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(); } }
// A classe pessoa possui o método 'Add' marcado com o modificador 'virtual'. // Isso quer dizer que esse método pode ser herdado e usado da forma que já // está implementado, mas também pode ser SOBRESCRITO. // Portanto, o modificador 'virtual' permite a sobrescrita do método através // da palavra chave 'override'. // Veja que a classe 'PessoaJuridica' faz essa sobrescrita. Ja a clase // 'PessoaFisica' não, apenas usa o que já está implementado na classe 'Pessoa'. static void Main(string[] args) { var pessoaFisica = new PessoaFisica("fulano", "00000000000"); pessoaFisica.Add(pessoaFisica); var pessoaJuridica = new PessoaJuridica("fulato LTDA", "00000000000111"); pessoaJuridica.Add(pessoaJuridica); Console.WriteLine(string.Join(", ", pessoaFisica.Get().Select(x => x.Id))); Console.WriteLine(string.Join(", ", pessoaJuridica.Get().Select(x => x.Id))); }