public ArvoreRaizDto Arvore(string nome, string sobrenome) { var pessoaRaiz = _pessoaRepository.BuscaPorNomeSobrenome(nome, sobrenome); if (pessoaRaiz == null) { this.AddNotification("pessoaRaiz", "Árvore não existente para essa pessoa"); } if (this.Invalid) { return(null); } pessoaRaiz.Pai = pessoaRaiz.IdPai == null ? null : BuscaAscendente(pessoaRaiz.IdPai); pessoaRaiz.Mae = pessoaRaiz.IdMae == null ? null : BuscaAscendente(pessoaRaiz.IdMae); var pessoaRaizDto = new ArvoreFilhoDto() { Id = pessoaRaiz.PessoaId, NomeCompleto = pessoaRaiz.NomeCompleto(), Filhos = null }; BuscaFilhos(pessoaRaizDto); return(new ArvoreRaizDto() { NomeCompleto = pessoaRaiz.NomeCompleto(), NomeCompletoPai = pessoaRaiz.Pai?.NomeCompleto(), NomeCompletoMae = pessoaRaiz.Mae?.NomeCompleto(), Filhos = pessoaRaizDto.Filhos }); }
private void BuscaFilhos(ArvoreFilhoDto pessoa) { var busca = _pessoaRepository.BuscaFilhos(pessoa.Id.Value).ToList(); if (busca.Count > 0) { foreach (ArvoreFilhoDto filho in busca) { BuscaFilhos(filho); if (pessoa.Filhos == null) { pessoa.Filhos = new List <ArvoreFilhoDto>(); } pessoa.Filhos.Add(filho); } } }