private static void CarMenu(Parking parking) { MenuDrawer.Index = 0; while (true) { switch (MenuDrawer.DrawMenu(new List <string>() { "Create vehicle", "Put vehicle", "Delete vehicle", "Remove vehicle", "Exit" })) { case "Create vehicle": VehicleRepository.CreateVehicle(parking); break; case "Put vehicle": VehicleRepository.PutVehicle(parking); break; case "Delete vehicle": break; case "Remove vehicle": break; case "Exit": MenuDrawer.Index = 0; return; } Console.Clear(); } }
public static void CreateVehicle(Parking parking) { var vehicle = new Vehicle(); MenuDrawer.Index = 0; var k = true; Console.Clear(); while (k) { Console.WriteLine("Choose type of Vehicle:"); var a = MenuDrawer.DrawMenu(new List <string>() { VehicleType.Car.ToString(), VehicleType.Truck.ToString(), VehicleType.Bus.ToString(), VehicleType.Bike.ToString(), "Exit" }); if (Enum.TryParse(a, out VehicleType type)) { vehicle.Type = type; k = false; } if (a == "Exit") { MenuDrawer.Index = 0; return; } } MenuDrawer.Index = 0; Console.WriteLine("Enter car balance:"); if (!double.TryParse(Console.ReadLine(), out double bal)) { return; } vehicle.Balance = bal; vehicle.Id = Guid.NewGuid(); worldVehicles.Add(vehicle); Console.WriteLine($"{vehicle.Type.ToString()} was successfuly created!\r\n\r\nPress any key to go back to menu..."); Console.ReadLine(); }
static void Main(string[] args) { List <string> menuItems = new List <string>() { "Get current balance", "Get sum of profit for the last min", "Get parking stats(avail/unavail)", "Get all transactions for the last min", "Get all transactions", "Get all cars", "Vehicle menu", "Deposit car balance", "Exit" }; Console.CursorVisible = false; var parking = Parking.GetInstance(); var timer = new Timer((e) => { UpdateTransaction(parking); }, null, TimeSpan.Zero, TimeSpan.FromSeconds(10)); MenuDrawer.Index = 0; while (true) { switch (MenuDrawer.DrawMenu(menuItems)) { case "Get current balance": Console.Clear(); Console.WriteLine($"Current parking balance is {parking.Balance}$;\r\n\r\nPress any key to go back to menu..."); Console.Read(); break; case "Get sum of profit for the last min": Console.Clear(); double sum = 0; foreach (var tr in parking.Transactions) { sum += tr.Amount; } Console.WriteLine($"Profit for the last min is {sum}$;\r\n\r\nPress any key to go back to menu..."); Console.Read(); break; case "Get parking stats(avail/unavail)": Console.Clear(); Console.WriteLine($"Currently available {parking.Capacity - parking.Vehicles.Capacity} parkings;\r\n\r\nPress any key to go back to menu..."); Console.Read(); break; case "Get all transactions for the last min": Console.Clear(); Console.WriteLine($"All transactions for the last min:"); foreach (var tr in parking.Transactions) { Console.WriteLine(tr); } Console.WriteLine("Press any key to go back to menu..."); Console.Read(); break; case "Get all transactions": Console.Clear(); ShowAllTransactions(); Console.WriteLine("Press any key to go back to menu..."); Console.Read(); break; case "Get all cars": Console.Clear(); foreach (var car in parking.Vehicles) { Console.WriteLine(car); } Console.WriteLine("Press any key to go back to menu..."); Console.Read(); break; case "Vehicle menu": Console.Clear(); CarMenu(parking); break; case "Exit": Environment.Exit(0); break; } Console.Clear(); } Console.Read(); }
public static void PutVehicle(Parking parking) { var vehicles = new List <string>(); foreach (var v in worldVehicles) { if (!parking.Vehicles.Any(ve => ve.ToString() == v.ToString())) { vehicles.Add(v.ToString()); } } if (vehicles.Any()) { MenuDrawer.Index = 0; string choosedName = ""; Console.Clear(); Console.WriteLine("Choose a Vehicle:"); while (choosedName == "") { choosedName = MenuDrawer.DrawMenu(vehicles); } MenuDrawer.Index = 0; var choosedVehicle = worldVehicles.First(v => (v.ToString() == choosedName)); parking.Vehicles.Add(choosedVehicle); double fee = 0; switch (choosedVehicle.Type) { case VehicleType.Car: fee = ParkingSettings.CarTariff; break; case VehicleType.Truck: fee = ParkingSettings.TruckTariff; break; case VehicleType.Bus: fee = ParkingSettings.BusTariff; break; case VehicleType.Bike: fee = ParkingSettings.BikeTariff; break; } parking.Transactions.Add(new Transaction() { Id = Guid.NewGuid(), Amount = fee, CarId = choosedVehicle.Id, Time = DateTime.Now }); } else { Console.WriteLine("Please create vehicles before putting it.."); Console.ReadLine(); return; } }