Esempio n. 1
0
        public Aluguel Alugar(AluguelDTO aluguel)
        {
            if (aluguel.DataEmprestimo > aluguel.DataDevolucao)
            {
                throw new Exception("A data de empréstimo deve ser anterior à data de entrega.");
            }

            DateTime inicio  = aluguel.DataEmprestimo.GetValueOrDefault();
            DateTime entrega = aluguel.DataDevolucao.GetValueOrDefault();

            IList <Veiculo> veiculosDisponiveis = veiculoRepositorio.ListarDisponiveis(inicio, entrega);

            Veiculo veiculo = veiculosDisponiveis.FirstOrDefault(x => x.Id == aluguel.Veiculo.Id);

            if (veiculo == null)
            {
                throw new Exception("Veículo indisponível durante o período selecionado.");
            }

            Aluguel novoAluguel = new Aluguel();

            novoAluguel.Clientes = new List <Cliente>();

            novoAluguel.DataEmprestimo          = inicio;
            novoAluguel.DataDevolucaoContratada = entrega;
            novoAluguel.DataDevolucao           = null;
            novoAluguel.Veiculo = veiculo;
            novoAluguel.Clientes.Add(clienteRepositorio.buscarPorCpf(aluguel.Cpf));

            return(repositorio.Inserir(novoAluguel));
        }
Esempio n. 2
0
        public IList <Veiculo> DisponiveisEntreDatas(DateTime begin, DateTime end, Localidade localidade)
        {
            if (begin > end)
            {
                throw new Exception("A data de início deve ser anterior à data de devolução");
            }

            return(repositorio.ListarDisponiveis(begin, end, localidade));
        }