public Telefone AtualizarTelefone(Telefone telefone)
        {
            if (!telefone.Validar())
            {
                return(telefone);
            }

            return(_telefoneRepository.Update(telefone));
        }
        public Telefone AdicionarTelefone(Telefone telefone)
        {
            if (!telefone.Validar())
            {
                return(telefone);
            }

            return(_telefoneRepository.Add(telefone));
        }
        public void Telefone_AutoValidacao_Valido()
        {
            var telefone = new Telefone
            {
                DDD    = 11,
                Numero = 988776655
            };

            var resultado = telefone.Validar();

            Assert.IsTrue(resultado);

            Assert.IsFalse(telefone.ValidationResult.Erros.Any());
        }
        public void Telefone_AutoValidacao_Invalido()
        {
            var telefone = new Telefone
            {
                DDD    = 1,
                Numero = 776655
            };

            var resultado = telefone.Validar();

            Assert.IsFalse(resultado);

            Assert.IsTrue(telefone.ValidationResult.Erros.Any(e => e.Message == "DDD do telefone não é válido."));
            Assert.IsTrue(telefone.ValidationResult.Erros.Any(e => e.Message == "Número do telefone não é válido."));
        }
        public async Task <int> AdicionarTelefoneAsync(int idPessoaFisica, string numero, string ddd)
        {
            PessoaFisica pessoa = Consultar(idPessoaFisica)
                                  ?? throw new ArgumentNullException("Pessoa física não encontrada");

            var telefone = new Telefone {
                PessoaFisica = pessoa,
                Numero       = numero,
                DDD          = ddd
            };

            telefone.Validar();

            await _unitOfWork.TelefoneRepository.AddAsync(telefone);

            _unitOfWork.Commit();

            return(telefone.Id);
        }