/// <summary> /// park a vehicle based on their vehicle type /// </summary> /// <param name="parkingLot"></param> private static void ParkVehicle(VehicleType vehicleType, ParkingLot parkingLot) { ParkingSlot parkingSlot = parkingLot.GetAvailableSlot(vehicleType); if (parkingSlot != null) { Vehicle vehicle = GetVehicle(vehicleType); Console.WriteLine("enter vehicle number"); int vehicleNumber = GetUserInput(); if (!parkingLot.IsVehicleAndTicketExist(vehicleNumber)) { vehicle.VehicleNumber = vehicleNumber; parkingLot.ParkVehicle(vehicle); Console.WriteLine("your parking slot has been allocated"); } else { Console.WriteLine("vehicle number already exist"); } } else { Console.WriteLine("Sorry,there are no slots available!!"); } Console.WriteLine("press any key to continue"); Console.ReadKey(); }
public void ParkVehicle(Vehicle vehicle) { ParkingSlot parkingSlot = GetAvailableSlot(vehicle.Type); int slotNumber = parkingSlot.ParkAVehicle(vehicle); parkingSlot.ParkingTicket = IssueTicket(vehicle.VehicleNumber, vehicle.Type, slotNumber); }
static void Main(string[] args) { ParkingLot parkingLot = new ParkingLot(); Intialize(parkingLot); bool isExit = false; while (!isExit) { Console.WriteLine("1. Parking Lot Current Occupancy details"); Console.WriteLine("2. Park a Vehicle"); Console.WriteLine("3. UnPark a Vehicle"); Console.WriteLine("0. Back"); Console.WriteLine("please a select a menu option"); int menuOption = GetUserInput(); switch (menuOption) { case 1: DisplayOccupancyDetails(parkingLot); break; case 2: DisplayParkMenu(parkingLot); break; case 3: Console.WriteLine("PLease enter Vehicle Number"); int vehicleNumber = GetUserInput(); if (parkingLot.IsVehicleNumberExist(vehicleNumber)) { ParkingSlot parkingSlot = parkingLot.GetParkingSlotOfVehicleNumber(vehicleNumber); parkingSlot.UnParkVehicle(); parkingLot.ChangeTicketStatus(parkingSlot.ParkingTicket); Console.WriteLine("vehicle has been successfully Unparked"); Console.ReadKey(); } else { Console.WriteLine("Vehicle number doesnt exist"); Console.WriteLine("press any key to continue"); Console.ReadKey(); } break; case 0: isExit = true; break; default: Console.WriteLine("option doesnt exist"); break; } } }
public void AddParkingSlot(ParkingSlot parkingSlot) { ParkingSlots.Add(parkingSlot); }