public void CreateAllotment(out ParkingSlot parkingSlot) { Console.Clear(); Console.WriteLine("*********** Welcome to Parking Allotment ***********"); Console.Write("Enter the number of slots for 2 wheelers : "); string twoWheeler = Console.ReadLine(); Console.Write("Enter the number of slots for 4 wheelers : "); string fourWheeler = Console.ReadLine(); Console.Write("Enter the number of slots for other vehicle : "); string otherVehilce = Console.ReadLine(); if ((Convert.ToInt32(twoWheeler) < 0 || Convert.ToInt32(fourWheeler) < 0 || Convert.ToInt32(otherVehilce) < 0) || (Convert.ToInt32(twoWheeler) > int.MaxValue || Convert.ToInt32(fourWheeler) > int.MaxValue || Convert.ToInt32(otherVehilce) > int.MaxValue) || (Convert.ToInt32(twoWheeler) < int.MinValue || Convert.ToInt32(fourWheeler) < int.MinValue || Convert.ToInt32(otherVehilce) < int.MinValue)) { Error(3); Console.ReadLine(); CreateAllotment(out parkingSlot); } else { parkingSlot = new ParkingSlot(int.Parse(twoWheeler), int.Parse(fourWheeler), int.Parse(otherVehilce)); } }
public ParkingSlot GetParkingSlot(Ticket ticket) { ParkingSlot parkingSlot = ParkingSlotList.Find(e => e.SlotId == ticket.SlotId); if (parkingSlot != null) { return(parkingSlot); } else { throw (new Exception("Ticket not Found")); } }
public void DisplayAllSlots(ParkingSlot parkingslot) { Console.WriteLine("\n\n****************** Parking Alloment Display ******************"); Console.WriteLine("Two Wheeler Parking Empty Slots = " + parkingslot.GetEmptyTwoWheelerSlots()); Console.WriteLine("Four Wheeler Parking Empty Slots = " + parkingslot.GetEmptyFourWheelerSlots()); Console.WriteLine("Other Vehicle Parking Empty Slots = " + parkingslot.GetEmptyOtherVehicleSlots()); List <Vehicle> vehicleList = parkingslot.GetVehicleList(); foreach (Vehicle vehicle in vehicleList) { Console.WriteLine("\nslot {0}\nVehicleType {1}\tVehicle no. {2} ", vehicleList.IndexOf(vehicle) + 1, vehicle.GetNumberOfWheels(), vehicle.GetVehicleNumber()); } Console.WriteLine("\n\n"); }
public void UnPark(Vehicle vehicle) { bool unparked = false; ParkingSlot occupiedSlot = ParkingSlotList.Find(e => e.vehicle.VehicleNumber == vehicle.VehicleNumber && e.vehicle.vehicleType == vehicle.vehicleType); if (occupiedSlot != null) { occupiedSlot.vehicle = new Vehicle(vehicle.vehicleType, ""); occupiedSlot.IsBooked = false; } else { throw (new Exception("Vehicle not found")); } }
public ParkingSlot Park(Vehicle vehicle) { ParkingSlot freeSlot = ParkingSlotList.Find(e => !e.IsBooked && e.vehicle.vehicleType == vehicle.vehicleType); if (freeSlot != null) { freeSlot.vehicle = vehicle; freeSlot.IsBooked = true; return(freeSlot); } else { throw (new Exception("Parking Slots are Full")); } }
public void DisplayMenu(ParkingSlot parkingSlot) { while (true) { Console.WriteLine("\n\n1. Park Vehicle"); Console.WriteLine("2. Unpark Vehicle"); Console.WriteLine("3. Display All Slots"); Console.WriteLine("4. Exit"); Console.WriteLine("Choose any option"); string choice = Console.ReadLine(); if (choice == "4") { break; } SelectOption(int.Parse(choice), parkingSlot); } }
public void SelectOption(int choice, ParkingSlot parkingSlot) { switch (choice) { case 1: VehicleType vehicle; string vehicleNumber = ReadVehicleDetail(out vehicle); while (vehicle == VehicleType.NONE) { vehicleNumber = ReadVehicleDetail(out vehicle); } if (!parkingSlot.ParkVehicle(vehicle, vehicleNumber)) { Error(1); } break; case 2: VehicleType vehicle2; string vehicleNumber2 = ReadVehicleDetail(out vehicle2); while (vehicle2 == VehicleType.NONE) { vehicleNumber2 = ReadVehicleDetail(out vehicle2); } if (!parkingSlot.UnParkVehicle(vehicle2, vehicleNumber2)) { Error(2); } break; case 3: DisplayAllSlots(parkingSlot); break; default: Console.WriteLine("Invalid Choice"); break; } }
public void UnParkVehicle(ParkingSlot parkingSlot) { ParkingSlotList.Remove(parkingSlot); }
public void ParkVehicle(ParkingSlot parkingSlot) { ParkingSlotList.Add(parkingSlot); }
public string GenerateTicket(ParkingSlot parkingSlot) { TicketList.Add(new Ticket(parkingSlot.vehicle, "T-" + (TicketList.Count() + 1), parkingSlot.SlotId)); return("T-" + (TicketList.Count())); }
public void SelectOption(int choice, ParkingSlot parkingSlot) { VehicleType vehicleType; string vehicleNumber; switch (choice) { case 1: vehicleNumber = ReadVehicleDetail(out vehicleType); while (vehicleType == VehicleType.NONE) { vehicleNumber = ReadVehicleDetail(out vehicleType); } if (parkingSlot.GetNumberOfTwoWheelerParked() < TwoWheelerCapacity && vehicleType == VehicleType.TWO_WHEELER) { TwoWheelerCapacity++; parkingSlot.ParkVehicle(vehicleType, vehicleNumber); } else if (parkingSlot.GetNumberOfFourWheelerParked() < FourWheelerCapacity && vehicleType == VehicleType.FOUR_WHEELER) { FourWheelerCapacity++; parkingSlot.ParkVehicle(vehicleType, vehicleNumber); } else if (parkingSlot.GetNumberOfOtherVehicleParked() < OtherVehicleCapacity && vehicleType == VehicleType.OTHER) { OtherVehicleCapacity++; parkingSlot.ParkVehicle(vehicleType, vehicleNumber); } else { Error(SLOT_FULL_ERROR); } break; case 2: vehicleNumber = ReadVehicleDetail(out vehicleType); bool unParked = false; while (vehicleType == VehicleType.NONE) { vehicleNumber = ReadVehicleDetail(out vehicleType); } List <Vehicle> vehicleList = parkingSlot.GetVehicleList(); foreach (Vehicle vehicle in vehicleList) { if (vehicle.GetVehicleType().Equals(vehicleType) && vehicle.GetVehicleNumber().Equals(vehicleNumber)) { parkingSlot.UnParkVehicle(vehicleType, vehicleNumber); unParked = true; } } if (!unParked) { Error(VEHICLE_NOT_FOUND_ERROR); } break; case 3: DisplayAllSlots(parkingSlot); break; default: Console.WriteLine("Invalid Choice"); break; } }
public void MainMenu(ParkingLot parkingLot) { Console.Clear(); Console.WriteLine("******************* Welcome to Parking Allotment System *******************"); while (true) { Console.WriteLine("1. Park Vehicle"); Console.WriteLine("2. UnPark Vehicle"); Console.WriteLine("3. View All Slots"); Console.WriteLine("4. View Available Slots"); Console.WriteLine("5. View Booked Slots"); Console.WriteLine("6. View All Tickets"); Console.WriteLine("7. Exit"); Vehicle vehicle; try { int choice = int.Parse(Console.ReadLine()); if (choice == 7) { break; } switch (choice) { case 1: //Park Vehicle vehicle = ReadVehicleDetails(); ParkingSlot parkingSlot = parkingLot.Park(vehicle); Console.WriteLine("Do you want ticket ? y/n"); if (Console.ReadLine() == "y") { Ticket ticket = parkingLot.GenerateTicket(parkingSlot); Console.WriteLine("Your Ticket Number is : {0}", ticket.TicketNumber); } break; case 2: //Unpark Vehicle Console.WriteLine("Enter the Ticket Number"); string TicketNumber = Console.ReadLine(); Ticket ticket = parkingLot.GetTicketList().Where(e => e.TicketNumber == TicketNumber).First(); ParkingSlot slot = parkingLot.GetParkingSlot(ticket); parkingLot.UnPark(slot.vehicle); ticket.OutTime = DateTime.Now; break; case 3: //Display All Slots DisplayAllSlots(parkingLot); break; case 4: //Display All Available Slots DisplaySlots(parkingLot, false); break; case 5: //Display All Booked Slots DisplaySlots(parkingLot, true); break; case 6: //Display Tickets DisplayTicket(parkingLot); break; default: Console.WriteLine("Invalid Choice"); break; } } catch (Exception e) { Console.WriteLine(e); } } }