public Cliente Adicionar(Cliente cliente)
        {
            if (!cliente.IsValid)
            {
                _notificacoes.AdicionarListaNotificacao(cliente.ValidationResult.Errors.ToList());
            }

            if (_notificacoes.TemNotificacao())
            {
                return(cliente);
            }

            Cliente clienteExistente = _clienteRepository.ObterPorCpfCnpj(cliente.CpfCnpj);

            if (!string.IsNullOrEmpty(clienteExistente?.CpfCnpj))
            {
                _notificacoes.AdicionarNotificacao($"Cliente de CpfCnpj.: {clienteExistente.CpfCnpj} já existe no sistema!");
                return(cliente);
            }

            _clienteRepository.Adicionar(cliente);

            _clienteRepository.SaveChanges();

            return(cliente);
        }
        protected void NotifyModelStateErrors()
        {
            var erros = ModelState.Values.SelectMany(v => v.Errors);

            foreach (var erro in erros)
            {
                var erroMsg = erro.Exception == null ? erro.ErrorMessage : erro.Exception.Message;
                _notificacoes.AdicionarNotificacao(erroMsg);
            }
        }