示例#1
0
        public void DisplayAllSlots(ParkingLot parkingLot)
        {
            Console.WriteLine("\n\n******************  Parking Alloment Display  ******************");
            List <ParkingSlot> slotList = parkingLot.GetParkingSlotList();

            Console.WriteLine("Two Wheeler Parking Empty Slots   = " + (TwoWheelerCapacity - slotList.Where(e => e.vehicle.vehicleType == VehicleType.TWO_WHEELER).Count()));
            Console.WriteLine("Four Wheeler Parking Empty Slots  = " + (FourWheelerCapacity - slotList.Where(e => e.vehicle.vehicleType == VehicleType.FOUR_WHEELER).Count()));
            Console.WriteLine("Other Vehicle Parking Empty Slots = " + (OtherVehicleCapacity - slotList.Where(e => e.vehicle.vehicleType == VehicleType.OTHER).Count()));
            foreach (ParkingSlot slot in slotList)
            {
                Console.WriteLine("\n***** Slot Number : {0} *****", slot.SlotId);
                Console.WriteLine("VehicleType {0}\t\tVehicle no. {1} ", slot.vehicle.vehicleType, slot.vehicle.VehicleNumber);
                Console.WriteLine("Ticket No: {0}\t\tIn-Time: {1}\t\tOut-Time: {2}", slot.ticket.TicketNumber, slot.ticket.InTime, slot.ticket.OutTime);
            }
            Console.WriteLine("\n\n");
        }
        public void CreateSlots(out ParkingLot parkingLot)
        {
            string twoWheelerSlot, fourWheelerSlot, otherVehicleSlot;

            do
            {
                Console.Write("Enter the Slots for 2 Wheeler : ");
                twoWheelerSlot = Console.ReadLine();
            } while (!IsValidSlot(twoWheelerSlot));
            do
            {
                Console.Write("Enter the Slots for 4 Wheeler : ");
                fourWheelerSlot = Console.ReadLine();
            } while (!IsValidSlot(fourWheelerSlot));
            do
            {
                Console.Write("Enter the Slots for Other vehicle : ");
                otherVehicleSlot = Console.ReadLine();
            } while (!IsValidSlot(otherVehicleSlot));

            parkingLot = new ParkingLot(int.Parse(twoWheelerSlot), int.Parse(fourWheelerSlot), int.Parse(otherVehicleSlot));
        }
示例#3
0
        public void MainMenu(ParkingLot parkingLot)
        {
            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;
                }
                VehicleType vehicleType;
                ParkingSlot parkingSlot;
                switch (int.Parse(choice))
                {
                case 1:
                    // add vehicle
                    parkingSlot = ReadVehicleDetail(out vehicleType);
                    while (vehicleType == VehicleType.NONE)
                    {
                        parkingSlot = ReadVehicleDetail(out vehicleType);
                    }
                    if (parkingLot.GetParkingSlotList().Where(e => e.vehicle.vehicleType == VehicleType.TWO_WHEELER).Count() < TwoWheelerCapacity && parkingLot.GetParkingSlotList().Where(e => e.vehicle.vehicleType == VehicleType.FOUR_WHEELER).Count() < FourWheelerCapacity && parkingLot.GetParkingSlotList().Where(e => e.vehicle.vehicleType == VehicleType.OTHER).Count() < OtherVehicleCapacity)
                    {
                        parkingLot.ParkVehicle(parkingSlot);
                    }
                    else
                    {
                        Error(SLOT_FULL_ERROR);
                    }
                    break;

                case 2:
                    // remove vehicle
                    parkingSlot = ReadVehicleDetail(out vehicleType);
                    bool unParked = false;
                    while (vehicleType == VehicleType.NONE)
                    {
                        parkingSlot = ReadVehicleDetail(out vehicleType);
                    }
                    List <ParkingSlot> slotList = parkingLot.GetParkingSlotList();
                    foreach (ParkingSlot slot in slotList)
                    {
                        if (slot.vehicle.vehicleType == vehicleType && slot.vehicle.VehicleNumber == parkingSlot.vehicle.VehicleNumber)
                        {
                            parkingLot.UnParkVehicle(slot);
                            slot.ticket.OutTime = DateTime.Now;
                            unParked            = true;
                        }
                    }
                    if (!unParked)
                    {
                        Error(VEHICLE_NOT_FOUND_ERROR);
                    }
                    break;

                case 3:
                    DisplayAllSlots(parkingLot);
                    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);
                }
            }
        }