private void DisplayTicket(ParkingLot parkingLot)
        {
            List <Ticket> ticketList = parkingLot.GetTicketList();

            foreach (Ticket ticket in ticketList)
            {
                Console.WriteLine("Ticket No : {0}\tSlot No : {1}\tVehicle No : {2}\tIn-Time : {3}\tOut-Time : {4}", ticket.TicketNumber, ticket.SlotId, ticket.VehicleNumber, ticket.InTime, ticket.OutTime);
            }
        }
        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);
                }
            }
        }