public Aluguel Simular(Aluguel dadosAluguel)
        {
            Aluguel simulacao = dadosAluguel;

            Veiculo veiculoAluguel = _veiculoRepository.Obter(dadosAluguel.IdVeiculo);

            if (veiculoAluguel == null)
            {
                simulacao.AddNotification(nameof(dadosAluguel.IdVeiculo), $"Veículo [ID:{dadosAluguel.IdVeiculo}] informado para aluguel não existe.");
                return(simulacao);
            }
            simulacao.Categoria  = veiculoAluguel.Categoria;
            simulacao.ValorHora  = veiculoAluguel.ValorHora;
            simulacao.ValorFinal = veiculoAluguel.ValorHora * simulacao.TotalDeHoras;

            return(simulacao);
        }
        public Aluguel Alugar(Aluguel dadosAluguel)
        {
            Aluguel aluguelParaProcessamento = Simular(dadosAluguel);

            if (aluguelParaProcessamento.Valid)
            {
                Cliente clienteAluguel = _clienteRepository.Obter(dadosAluguel.IdCliente);
                if (clienteAluguel == null)
                {
                    dadosAluguel.AddNotification(nameof(dadosAluguel.IdVeiculo), $"Cliente [ID:{dadosAluguel.IdCliente}] informado para aluguel não existe.");
                    return(dadosAluguel);
                }

                aluguelParaProcessamento.IdAluguel = _aluguelRepository.Inserir(aluguelParaProcessamento);
                _veiculoRepository.AtualizarDisponibilidade(aluguelParaProcessamento.IdVeiculo, true);
            }

            return(aluguelParaProcessamento);
        }