ex-inh-05-transport/Transport/Program.cs
github-classroom[bot] dcabbbaf15
Initial commit
2025-02-25 17:10:54 +00:00

100 lines
2.8 KiB
C#

using System.Text;
using Transport;
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("*** Transport ***");
var mgmt = new TravelManagement();
mgmt.InitializeFromFile("Data/vehicles.xlsx");
var totalCost = 0M;
var rent01 = mgmt.RentVehicle<Car>("John Smith", 10.2);
var rent02 = mgmt.RentVehicle<Rickshaw>("Emily Johnson", 3.6);
var rent03 = mgmt.RentVehicle<Rickshaw>("Ryan Hernandez", 31.4);
var rent04 = mgmt.RentVehicle<Car>("David Brown", 78.2);
var rent05 = mgmt.RentVehicle<Car>("Emily Davis", 6.7);
ReturnVehicle(rent01);
ReturnVehicle(rent03);
ReturnVehicle(rent05);
rent01 = mgmt.RentVehicle<Rickshaw>("Robert Miller", 52.1);
rent03 = mgmt.RentVehicle<Car>("Jessica Lee", 7.8);
rent05 = mgmt.RentVehicle<Rickshaw>("Tyler Martin", 2.8);
var rent06 = mgmt.RentVehicle<Car>("Melissa Taylor", 93.5);
ReturnVehicle(rent02);
ReturnVehicle(rent04);
rent02 = mgmt.RentVehicle<Car>("Matthew Clark", 25.7);
rent04 = mgmt.RentVehicle<Car>("Sarah Davis", 46.9);
ReturnVehicle(rent01);
ReturnVehicle(rent02);
ReturnVehicle(rent03);
ReturnVehicle(rent04);
ReturnVehicle(rent05);
ReturnVehicle(rent06);
rent01 = mgmt.RentVehicle<Rickshaw>("Michael Martinez", 8.1);
rent02 = mgmt.RentVehicle<Rickshaw>("Ashley Lee", 5.2);
rent03 = mgmt.RentVehicle<Car>("Kevin Johnson", 77.3);
rent04 = mgmt.RentVehicle<Car>("Lauren Thompson", 59.8);
rent05 = mgmt.RentVehicle<Rickshaw>("Justin Scott", 7.6);
rent06 = mgmt.RentVehicle<Rickshaw>("Rachel Nguyen", 2.9);
ReturnVehicle(rent01);
ReturnVehicle(rent02);
ReturnVehicle(rent03);
ReturnVehicle(rent04);
rent01 = mgmt.RentVehicle<Car>("Erica Rodriguez", 111.2);
rent02 = mgmt.RentVehicle<Car>("Brandon Kim", 22.5);
ReturnVehicle(rent05);
ReturnVehicle(rent06);
rent03 = mgmt.RentVehicle<Rickshaw>("Kayla Lee", 11.7);
rent04 = mgmt.RentVehicle<Car>("Avery Williams", 41.2);
rent05 = mgmt.RentVehicle<Rickshaw>("Jenna Kim", 4.9);
rent06 = mgmt.RentVehicle<Car>("Daniel Nguyen", 111.2);
ReturnVehicle(rent01);
rent01 = mgmt.RentVehicle<Rickshaw>("Alexis Lee", 3.3);
ReturnVehicle(rent01);
ReturnVehicle(rent02);
ReturnVehicle(rent03);
rent01 = mgmt.RentVehicle<Car>("Olivia Baker", 57.2);
rent02 = mgmt.RentVehicle<Car>("Connor Smith", 38.8);
rent03 = mgmt.RentVehicle<Rickshaw>("Gabriel Lee", 10.2);
ReturnVehicle(rent01);
ReturnVehicle(rent02);
ReturnVehicle(rent03);
ReturnVehicle(rent04);
ReturnVehicle(rent05);
ReturnVehicle(rent06);
Console.WriteLine($"Total cost of all rides: {totalCost:C2}");
var travelLog = mgmt.GetTravelLog();
var fileName = $"travel-log-{DateTime.Now:yyyy-MM-dd-HH-mm-ss}.xlsx";
string filePath = Path.Combine(Directory.GetCurrentDirectory(), fileName);
travelLog.SaveAs(filePath);
Console.WriteLine($"Travel log saved to: {filePath}");
return;
void ReturnVehicle(Vehicle? rentedVehicle)
{
if (rentedVehicle is not null)
{
totalCost += rentedVehicle.EndRide().price ?? 0;
}
}