static void Main(string[] args) { Console.WriteLine("Enter rental data"); Console.WriteLine("Car model: "); String model = Console.ReadLine(); Console.WriteLine("Pickup(dd/MM/yyyy hh:ss): "); DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.WriteLine("Return (dd/MM/yyyy hh:ss): "); DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.WriteLine("Enter price per hour: "); double hour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.WriteLine("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); rentalService.(carRental); Console.WriteLine("INVOICE: "); Console.WriteLine(carRental.Invoice); }
public void Locacao() { Console.WriteLine("Enter rental data"); Console.Write("Car model: "); string car = 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 pricePerHour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Enter price per hour:"); double pricePerDay = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); CarRental carRental = new CarRental(start, finish, new Vehicle(car)); RentalService rentalService = new RentalService(pricePerHour, pricePerDay, new BrazilTaxServices()); rentalService.ProcessInvoice(carRental); Console.WriteLine("INVOICE:"); Console.WriteLine(carRental.Invoice); }
static void Main(string[] args) { Console.WriteLine("Enter a rental data: "); Console.WriteLine("Car model: "); string model = Console.ReadLine(); Console.WriteLine("Pickup(dd/MM/yyyy hh:ss): "); DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:ss", CultureInfo.InvariantCulture); Console.WriteLine("Return(dd/MM/yyyy hh:ss): "); DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:ss", CultureInfo.InvariantCulture); CarRental car = new CarRental(start, finish, new Vehicle(model)); Console.WriteLine("Price per hour: "); double phour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.WriteLine("Price per day: "); double pday = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); RentalService rental = new RentalService(phour, pday, new BrazilTaxService()); rental.ProcessInvoice(car); Console.WriteLine(car.Invoice); }
static void Main(string[] args) { Console.WriteLine("194. Interfaces"); Console.WriteLine("==============="); Console.WriteLine(); Console.WriteLine("Enter rental data"); Console.Write("Car model: "); string model = Console.ReadLine(); Console.WriteLine("Pickup (dd/MM/yyyy hh:mm): "); DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", new CultureInfo("pt-BR").DateTimeFormat); Console.WriteLine("Return (dd/MM/yyyy hh:mm): "); DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", new CultureInfo("pt-BR").DateTimeFormat); Console.WriteLine("Enter price per hour: "); double hour = double.Parse(Console.ReadLine(), new CultureInfo("pt-BR").NumberFormat); Console.WriteLine("Enter price per day: "); double day = double.Parse(Console.ReadLine(), new CultureInfo("pt-BR").NumberFormat); 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); }
static void Main(string[] args) { /* * INTERFACE: * - Interface é um tipo que define um conjunto de operações que uma classe(ou struct) deve IMPLEMENTAR. * - A interface estabele um CONTRATO que a classe (ou struct) deve cumprir. * - Convenção: Utilizar o "I" no inicio do nome da classe para identifica-la como interface. * * PRA QUE INTERFACE? * - Para criar sistemas com baixo acoplamento e flexíveis. * * PROBLEMA EXEMPLO: (SEM INTERFACE) * - 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, intante inicial e final da locação), bem como o valor por hora e o valor diário de locação, valor do imposto e valor total do * pagamento (contendo valor da locação, valor do imposto e valor total do pagamento) e informar os dados na tela. Veja os exemplos: * * EXEMPLO 1: * Enter rental data * Car model: Civic * Pickup (dd/MM/yyyy hh:MM): 25/06/2018 10:30 * Return (dd/MM/yyyy hh:MM): 25/06/2018 14:40 * Enter price per hour: 10.00 * Enter price per day: 130.00 * INVOICE: * Basic payment: 50.00 * Tax: 10.00 * Total payment: 60.00 */ //SOLUÇÃO SEM O USO DE INTERFACE: Observar o código da Classe RentalService que possui uma dependência fortemente acoplada com o BrazilTaxService Console.WriteLine("Enter rental data"); Console.Write("Car model: "); string model = Console.ReadLine(); Console.Write("Pickup (dd/MM/yyyy hh:MM): "); DateTime pickup = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Rentur (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 pricePerHour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Enter price per day: "); double pricePerDay = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); CarRental carRental = new CarRental(pickup, _return, new Vehicle(model)); RentalService rentalService = new RentalService(pricePerHour, pricePerDay); rentalService.ProcessInvoice(carRental); Console.WriteLine("INVOICE:"); Console.WriteLine(carRental.Invoice); }