Пример #1
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);//arendonda a hora pra cima
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }

            double tax = _brazilTaxSercice.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #2
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start); // hra final - hra inicial
            // define valor pagamento pela hora ou dia
            double basicPayment = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); // Ceilling - arredonda +
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }
            // gera fatura obtendo basicPayment e adiciona em prop (Invoice - tipo Invoice) de CarRental
            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #3
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }

            double tax = _taxService.Tax(basicPayment); // não é a forma correta ainda

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #4
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPaymente = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                basicPaymente = PricePerHour * Math.Ceiling(duration.TotalHours);
            }
            else
            {
                basicPaymente = Priceperday * Math.Ceiling(duration.TotalDays);
            }

            double tax = _taxservices.Tax(basicPaymente);

            carRental.Invoice = new Invoice(basicPaymente, tax);
        }
Пример #5
0
        public static void Main(string[] args)
        {
            /*
             * Problema:
             * locação -    por hora até 12 horas
             *              por dia a cima de 12 horas
             * Além do valor da locação é acrecentado ao preço o imposto conforme regras do país
             * 20% valores até $100
             * 15% valores a cima de $100
             */

            /*
             * Solução do problema sem interface
             */
            try
            {
                Console.WriteLine("Entre com os dados do aluguél");
                Console.Write("Car model: ");
                string model = Console.ReadLine();
                Console.Write("Pickup (dd/MM/yyyy hh:mm): ");
                DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
                Console.Write("Return (dd/MM/yyyy hh:mm): ");
                DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);


                Console.Write("Entre com o preço por hora: ");
                double hour = Double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);
                Console.Write("Entre com o preço por dia: ");
                double day = Double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

                CarRental carRental = new CarRental(start, finish, new Vehicle(model));

                RentalService rentalService = new RentalService(hour, day);

                rentalService.ProcessInvoice(carRental);

                Console.WriteLine(carRental.Invoice);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Пример #6
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment;

            if (duration.TotalHours <= 12.0)
            {
                basicPayment = Math.Ceiling(duration.TotalHours) * ValuePerHour;
            }
            else
            {
                basicPayment = Math.Ceiling(duration.TotalDays) * ValuePerDay;
            }

            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #7
0
        protected void dgCarRental_DeleteCommand(object source, DataGridCommandEventArgs e)
        {
            int       id        = (int)dgCarRental.DataKeys[e.Item.ItemIndex];
            CarRental CarRental = _presenter.GetCarRentalById(id);

            try
            {
                CarRental.Status = "InActive";
                _presenter.SaveOrUpdateCarRental(CarRental);

                BindCarRentals();

                Master.ShowMessage(new AppMessage("Car Rental was Removed Successfully", Chai.WorkflowManagment.Enums.RMessageType.Info));
            }
            catch (Exception ex)
            {
                Master.ShowMessage(new AppMessage("Error: Unable to delete Car Rental. " + ex.Message, Chai.WorkflowManagment.Enums.RMessageType.Error));
            }
        }
Пример #8
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duracao = carRental.Fim.Subtract(carRental.Inicio);

            double basicPayment = 0.0;

            if (duracao.TotalHours <= 12.0)
            {
                basicPayment = PricePerHour * Math.Ceiling(duracao.TotalHours);
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duracao.TotalDays);
            }

            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("Entre com os Dados do aluguel");
            Console.WriteLine("Cliente");
            Console.WriteLine("Nome");
            string nome = Console.ReadLine();

            Console.WriteLine("CPF");
            string cpf = Console.ReadLine();

            Console.WriteLine("Data de nascimento");
            DateTime dataNascimento = DateTime.Parse(Console.ReadLine());


            Client client = new Client(cpf, nome, dataNascimento);

            Console.WriteLine("Modelo do carro");
            string modelo = Console.ReadLine();

            Console.Write("Retirada:");
            DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

            Console.Write("Devolução:");
            DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

            CarRental CarRental = new CarRental(start, finish);

            Console.WriteLine("Entre com o preço Por hora");
            double hour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

            Console.WriteLine("Entre com o preço Por Dia");
            double day = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

            RentalService rentalService = new RentalService(hour, day, new BrasilTexServices());

            rentalService.ProcessInvoice(CarRental);

            Console.WriteLine("Dados do cliente");
            Console.WriteLine(client);
            Console.WriteLine("Descrição do pedido");

            Console.WriteLine(CarRental.Invoice);
        }
Пример #10
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Enter rental data");
                Console.Write("Car model: ");
                string model = Console.ReadLine();

                Console.Write("Pickup (dd/MM/yyyy hh:mm):");
                DateTime pichkup = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy hh:mm", CultureInfo.InvariantCulture);
                Console.Write("Return (dd/MM/yyyy hh:mm):");
                DateTime Return = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy hh:mm", CultureInfo.InvariantCulture);

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


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


                CarRental carRental = new CarRental(pichkup, Return, new Vehicle(model));


                RentalService rentalService = new RentalService(PerHora, PerDay, new BrazilTaxService());

                rentalService.ProcessInvoice(carRental);

                Console.WriteLine("INCOICE");
                Console.WriteLine(carRental.Invoice);



                Console.WriteLine();

                Console.WriteLine("Pressione qualquer tecla para continuar.");
                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine("Retornou um erro inesperado" + e.Message);
            }
        }
        public void ProcessInvoice(CarRental carRental)
        {
            Duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment = 0.0;

            if (Duration.TotalHours <= 12)
            {
                basicPayment = PricePerHour * Math.Ceiling(Duration.TotalHours);
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(Duration.TotalDays);
            }

            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #12
0
        static void Main(string[] args)
        {
            ForegroundColor = ConsoleColor.Yellow;
            WriteLine("Digite os dados do aluguel");
            ForegroundColor = ConsoleColor.Red;
            Write("Modelo do carro: ");
            string modelo = ReadLine();

            ResetColor();
            Write("Retirada do veículo: (dd/MM/yyyy hh:mm): ");
            ForegroundColor = ConsoleColor.Red;
            DateTime retirada = DateTime.Parse(ReadLine());

            ResetColor();
            Write("Entrega do veículo: (dd/MM/yyyy hh:mm): ");
            ForegroundColor = ConsoleColor.Red;
            DateTime entrega = DateTime.Parse(ReadLine());

            ResetColor();
            Write("Digite o preço por hora: ");
            ForegroundColor = ConsoleColor.Red;
            double precoPorHora = double.Parse(ReadLine(), CultureInfo.InvariantCulture);

            ResetColor();
            Write("Digite o preço por dia: ");
            ForegroundColor = ConsoleColor.Red;
            double precoPorDia = double.Parse(ReadLine(), CultureInfo.InvariantCulture);

            //Instanciar um aluguel de veículo
            CarRental carRental = new CarRental(retirada, entrega, new Vehicle(modelo));
            //Instanciar um serviço de aluguel passando a dependêcia, que é a classe concreta BrazilTaxService
            RentalService rentalService = new RentalService(precoPorHora, precoPorDia, new BrazilTaxService());

            //Associar o objeto Fatura ao aluguel do veículo
            rentalService.ProcessInvoice(carRental);

            ForegroundColor = ConsoleColor.Yellow;
            WriteLine();
            WriteLine("::::::::::: FATURA :::::::::::");
            WriteLine(carRental.Invoice);
            ResetColor();
        }
Пример #13
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                //O método "Math.Ceiling(), arredonda o valor para cima.
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }

            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #14
0
        // to get a car rental from the database and populate the fields with the fetched data
        // PK cannot be changed.
        protected async void GetCarRental_Click(object sender, EventArgs e)
        {
            CarRental carRental = await dbHelper.GetCarRental(ddlCarRentals.SelectedItem.Text);

            // to check that it's not an empty object
            if (carRental != null)
            {
                CarRentalCodeTextBox.Text = carRental.Code;
                CarRentalNameTextBox.Text = carRental.Name;

                CarRentalCodeTextBox.Enabled = false;
                EditCarRentalButton.Enabled  = true;

                AddCRResults.Text = "CarRental is fetched";
            }
            else
            {
                AddCRResults.Text = "CANNOT BE FETCHED";
            }
        }
Пример #15
0
        public void ProcessInvoice(CarRental carRental)
        {
            //subtração de data e atribuicao a variável duration
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                //atribui as horas vezes o preco por hora (arredondando pra cima com o Math.Ceiling)
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }
            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #16
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.CarReturn.Subtract(carRental.CarPickup);

            var basicPayment = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                basicPayment = HourRates * Math.Ceiling(duration.TotalHours);
            }

            else
            {
                basicPayment = DailyRates * Math.Ceiling(duration.TotalDays);
            }

            var tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #17
0
        public void ProcessInvoice(CarRental car)
        {
            TimeSpan totalDuration = car.Finish.Subtract(car.Start);

            double basicPayment;
            double tax;

            if (totalDuration.Hours <= 12.0)
            {
                basicPayment = Math.Ceiling(totalDuration.TotalHours) * PricePerHour;
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(totalDuration.TotalDays);
            }

            tax = TaxService.Tax(basicPayment);

            car.Invoice = new Invoice(basicPayment, tax);
        }
Пример #18
0
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration     = carRental.Finish.Subtract(carRental.Start);
            double   basicPayment = 0.0;

            //Valida a duração da locação do veículo e arredonda para cima
            if (duration.TotalHours <= 12)
            {
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }

            //Calcula a taxa de imposto
            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #19
0
        public void ProcessInvoice(CarRental carRental)
        {
            // Obetendo o tempo total do aluguel em TimeSpan.
            TimeSpan duration     = carRental.DateFinish.Subtract(carRental.DateStart);
            double   basicPayment = 0;

            if (duration.TotalHours <= 12)
            {
                //Math.Ceiling arredonda os valores.
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);
            }
            else
            {
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalDays);
            }

            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #20
0
        protected string CreateAndSaveACarRental(string carCategory, string customerSocialSecurityNumber, decimal currentMilage)
        {
            using (var db = new CarRentalContext())
            {
                var rental = new CarRental()
                {
                    CarCategory = carCategory,
                    CustomerSocialSecurityNumber = customerSocialSecurityNumber,
                    CarMilageAtRentInKm          = currentMilage,
                    Rented = _dateTimeProvider.GetUtcNow()
                };
                db.Add(rental);
                db.SaveChanges();

                rental.BookingNumber = "BN" + rental.Id; //No real req. here, just it made up for now
                db.SaveChanges();

                return(rental.BookingNumber);
            }
        }
        public void ProcessInvoice(CarRental carRental)
        {
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            decimal total = 0m;

            if (duration.TotalHours <= 12)
            {
                total = PrecoPorHora * (decimal)Math.Ceiling(duration.TotalHours);
            }
            else
            {
                total = PrecoPorDia * (decimal)Math.Ceiling(duration.TotalDays);
            }

            decimal tax = _taxService.Tax(total);

            carRental.Invoice = new Invoice(total, tax);

            Console.WriteLine($"Total {total}");
        }
Пример #22
0
            internal static int Change(CarRental item)
            {
                using (var unitOfWork = new UnitOfWork())
                {
                    using (var items = new XPCollection <DB.CarRentals>(unitOfWork))
                    {
                        var dbItem = items.FirstOrDefault(u => u.Id == item.Id);
                        if (dbItem == null)
                        {
                            throw new Exception(Resources.CarRentals_Read_Точка_выдачи_не_найдена_);
                        }

                        dbItem.Name   = item.Name;
                        dbItem.SiteId = item.SiteId;
                    }

                    unitOfWork.CommitChanges();

                    return(item.Id);
                }
            }
Пример #23
0
        /// <summary>
        /// Autofills the car rental information for car rental id when the user clicks "Autofill" button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void Autofill_Click(object sender, RoutedEventArgs args)
        {
            string message = "";

            if (Check.ValidPositiveInt("Car Rental ID", uxCarRentalID.Text, out message))
            {
                int carRentalID             = int.Parse(uxCarRentalID.Text);
                SqlCommandExecutor executor = new SqlCommandExecutor(connectionString);

                CarRental agency = executor.ExecuteReader(new CarsGetAgencyByIDDelegate(carRentalID));
                City      city   = executor.ExecuteReader(new LocationGetCityByCityIdDelegate(agency.CityID));
                uxCarRentalAgencyName.Text = agency.AgencyName;
                uxCity.Text    = city.CityName;
                uxCountry.Text = city.Country;
                uxRegion.Text  = city.Region;
            }
            else
            {
                MessageBox.Show(message);
            }
        }
Пример #24
0
        // GET: CarRentals/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarRental carRental = await db.CarRentals.FindAsync(id);

            if (carRental == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CarID = db.Cars.Select(car => new SelectListItem
            {
                Text  = car.Make + " " + car.Model,
                Value = car.ID.ToString()
            });
            ViewBag.CustomerID = new SelectList(db.Customers, "ID", "Name", carRental.CustomerID);
            ViewBag.EmployeeID = new SelectList(db.Employees, "ID", "Name", carRental.EmployeeID);
            return(View(carRental));
        }
Пример #25
0
        public void ProcessInvoice(CarRental carRental)
        {
            // pegando duração de horas em C#
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment = 0.0;

            if (duration.TotalHours <= 12.0)
            {
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);
                //Math.Ceiling -> arrendonda para cima
            }
            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }

            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
Пример #26
0
        public async Task <ActionResult> AddCarRental([FromBody] CarRental item)
        {
            if (!AllowEdit(item.TripID))
            {
                return(Forbid());
            }

            await service.SaveCarRental(new CarRental()
            {
                TripID           = item.TripID,
                Price            = item.Price,
                CarRentalCompany = item.CarRentalCompany,
                CarPickupAddress = item.CarPickupAddress,
                CarRentalUrl     = item.CarRentalUrl,
                CarIssueDate     = item.CarIssueDate,
                CarReturnDate    = item.CarReturnDate,
                Currency         = item.Currency,
            });

            return(Ok());
        }
        public async Task <ActionResult <CarRental> > PostCarRental(CarRental carRental)
        {
            _context.CarRental.Add(carRental);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (CarRentalExists(carRental.CompanyCode))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetCarRental", new { id = carRental.CompanyCode }, carRental));
        }
Пример #28
0
        static void Main(string[] args)
        {
            /*
             * Uma locadora brasileira de carros cobra um valor por hora para locações de até
             * 12 horas. Porém, se a duração da locação ultrapassar 12 horas, a locação será
             * cobrada com base em um valor diário. Além do valor da locação, é acrescido no
             * preço o valor do imposto conforme regras do país que, no caso do Brasil, é 20%
             * para valores até 100.00, ou 15% para valores acima de 100.00. Fazer um
             * programa que lê os dados da locação (modelo do carro, instante inicial e final da
             * locação), bem como o valor por hora e o valor diário de locação. O programa
             * deve então gerar a nota de pagamento (contendo valor da locação, valor do
             * imposto e valor total do pagamento) e informar os dados na tela. Veja os
             * exemplos.
             */


            Console.WriteLine("Enter rental data");
            Console.Write("Car model: ");
            string model = Console.ReadLine();

            Console.Write("Pickup (dd/MM/yyyy hh:mm): ");
            DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

            Console.Write("Return (dd/MM/yyyy hh:mm): ");
            DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

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

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

            CarRental carRental = new CarRental(start, finish, new Vehicle(model));

            RentalService rentalService = new RentalService(hour, day, new BrazilTaxService());

            rentalService.ProcessInvoice(carRental);

            Console.WriteLine("INVOICE:\n" + carRental.Invoice);
        }
Пример #29
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Enter rental data");
                Console.Write("Car model: ");
                string model = Console.ReadLine();

                Console.Write("Pickup (dd/MM/yyyy hh:mm): ");
                DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
                Console.Write("Return (dd/MM/yyyy hh:mm): ");
                DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

                Console.Write("Enter price per hour: ");
                double hour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);
                Console.Write("Enter price per day: ");
                double day = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

                CarRental carRental = new CarRental(start, finish, new Vehicle(model));

                RentalService rentalService = new RentalService(hour, day, new BrazilTaxService());

                rentalService.ProcessInvoice(carRental);

                Console.WriteLine("INVOICE: ");
                Console.WriteLine(carRental.Invoice);
            }
            catch (System.FormatException e)
            {
                Console.WriteLine("Error in format: " + e.Message);
            }
            catch (DomainException e)
            {
                Console.WriteLine("Error in car rental: " + e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unexpected error: " + e.Message);
            }
        }
Пример #30
0
        public void ProcessInvoice(CarRental carRental)
        {
            //Duração da minha locação
            TimeSpan duration = carRental.Finish.Subtract(carRental.Start);

            double basicPayment = 0.0;

            //arredondando para cima Math.Ceiling
            if (duration.TotalHours <= 12.0)
            {
                basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);
            }

            else
            {
                basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays);
            }

            double tax = _taxService.Tax(basicPayment);

            carRental.Invoice = new Invoice(basicPayment, tax);
        }
 private void PopulateCarRental(CarRental rental) {
     rental.RentalCompany = (new[] {"Avis", "EasyCar", "Hertz"})[random.Next(3)];
     rental.NumberOfDays = random.Next(14) + 1;
 }