Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Enter rental data");
            Console.Write("Car model: ");
            string modelo = Console.ReadLine();

            Console.Write("Pickup (dd/MM/yyyy hh:mm): ");
            DateTime entrada = DateTime.Parse(Console.ReadLine());

            Console.Write("Return (dd/MM/yyyy hh:mm): ");
            DateTime saida = DateTime.Parse(Console.ReadLine());

            Console.Write("Enter price per hour: ");
            double valorHora = double.Parse(Console.ReadLine());

            Console.Write("Enter price per day: ");
            double valorDia = double.Parse(Console.ReadLine());

            AlugelDeCarros   alugCar  = new AlugelDeCarros(entrada, saida, new Veiculo(modelo));
            ServicoDeAluguel servAlug = new ServicoDeAluguel(valorHora, valorDia, new TaxaServicoBrasil());

            servAlug.ProcessarFatura(alugCar);

            Console.WriteLine(alugCar.Fatura);
        }
        public void ProcessarFatura(AlugelDeCarros alugelDeCarros)
        {
            //obtendo a duração.
            TimeSpan duracao = alugelDeCarros.Fim.Subtract(alugelDeCarros.Inicio);

            double pagamentoBasico = 0.0;

            if (duracao.TotalHours <= 12.0)
            {
                pagamentoBasico = ValorPorHora * Math.Ceiling(duracao.TotalHours);
            }
            else
            {
                pagamentoBasico = ValorPorDia * Math.Ceiling(duracao.TotalDays);
            }

            double taxa = _taxaServico.Taxa(pagamentoBasico);

            alugelDeCarros.Fatura = new Fatura(pagamentoBasico, taxa);
        }