public async Task <Medico> Atualizar(Medico medico)
        {
            if (!ValidarAtualizacao(medico))
            {
                return(null);
            }

            var medicoBanco = _medicoRepository.ObterPorId(medico.Id).Result;

            if (medicoBanco == null)
            {
                _notificacador.NotificarErro("Atualizar Médico", "Id do médico inválido!");
                return(null);
            }

            medicoBanco.AtualizarNome(medico.Nome);
            medicoBanco.AtualizarCRM(medico.CRM);
            medicoBanco.AtualizarCPF(medico.CPF);

            medicoBanco.Especialidades.Clear();
            medicoBanco.AdicionarEspecialidades(medico.Especialidades);

            if (!OperacaoValida())
            {
                return(null);
            }

            _medicoRepository.Atualizar(medico);
            await _medicoRepository.SaveChanges();

            return(medico);
        }
 protected void NotificarErro(string mensagem)
 {
     _notificador.NotificarErro(new Notificacao(mensagem));
 }