public IEnumerable <Endereco> Enderecos => _enderecos.ToList().AsReadOnly(); // essa expressão lambda equivale a... /*public IEnumerable<Endereco> Enderecos() * { * return _enderecos.ToList().AsReadOnly(); * }*/ /* só consigo (e só pode) adicionar endereço, dessa forma... */ public void AdicionarEndereco(Endereco endereco) { /* Melhorando a validação... * if (endereco != null) * _enderecos.Add(endereco); */ if (endereco == null) { // gera uma exceção (não é uma boa prática)... qwdo for uma coisa muito grave, tudo bem // devolver uma mensagem // ou mesclar as duas coisas (exceção e mensagem) NotificacaoDominio.AdicionarErro("Endereço deve ser instanciado"); } else { endereco.SetNotificacao(new NotificacaoDominio()); if (endereco.ValidarPropriedades()) { _enderecos.Add(endereco); } else { NotificacaoDominio.AdicionarErro("Não é possível adicionar o endereço para pessoa."); } } }
public bool ValidarPropriedades() { if (string.IsNullOrEmpty(Rua)) { NotificacaoDominio.AdicionarErro("Rua deve ser preenchida."); } if (Numero <= 0) { NotificacaoDominio.AdicionarErro("Número deve ser preenchido."); } return(NotificacaoDominio.Validar()); }