public void DisplayCampsByParkId(int parkId, Dictionary <int, Park> listOfParks)
        {
            if (listOfParks.ContainsKey(parkId))
            {
                CampgroundSqlDal             dal         = new CampgroundSqlDal(dbConnection);
                Dictionary <int, Campground> listOfCamps = dal.GetAllCampsByParkId(parkId);

                Console.WriteLine("Camp Id\t\t Name\t\t\t\t Open From\t Open Until\t Daily Fee");
                if (listOfCamps.Count > 0)
                {
                    foreach (int key in listOfCamps.Keys)
                    {
                        Console.WriteLine(listOfCamps[key].ToString());
                    }
                    Console.WriteLine("Please select campground to search for available dates or press 0 to return ___");
                    int campId = Convert.ToInt32(Console.ReadLine());
                    if (campId == 0)
                    {
                        return;
                    }
                    if (listOfCamps.ContainsKey(campId))
                    {
                        SearchByCampId(campId);
                    }
                    else
                    {
                        Console.WriteLine("Invalid Campground ID: ");
                    }
                }
            }
            else
            {
                Console.WriteLine("Invalid Park ID - Please choose a valid park.");
            }
        }
        public void ProcessCustomerOption()
        {
            DisplaySubMenu();
            ParkSqlDal             dal         = new ParkSqlDal(dbConnection);
            Dictionary <int, Park> listOfParks = dal.GetAllParks();
            int parkId;

            while (true)
            {
                string userInput = Console.ReadLine();
                if (userInput == "1") // park details
                {
                    DisplayAllParks(listOfParks);
                    Console.WriteLine("Please Choose A Park To View Details");
                    parkId = Convert.ToInt32(Console.ReadLine());
                    DisplayParkDetails(parkId, listOfParks);
                }
                else if (userInput == "2")
                {
                    DisplayAllParks(listOfParks);
                    Console.WriteLine("Please Select A Park ID To View All Campground Sites");
                    parkId = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine(@"What is the arrival date? __/__/____ ");
                    DateTime fromDate = Convert.ToDateTime(Console.ReadLine());

                    Console.WriteLine(@"What is the departure date? __/__/____ ");

                    DateTime toDate = Convert.ToDateTime(Console.ReadLine());

                    if (listOfParks.ContainsKey(parkId))
                    {
                        CampgroundSqlDal             campDal    = new CampgroundSqlDal(dbConnection);
                        Dictionary <int, Campground> listOfCamp = campDal.GetAllCampsByParkId(parkId);
                        Console.WriteLine();
                        Console.WriteLine("Results Matching Your Search Criteria ");
                        foreach (int key  in listOfCamp.Keys)
                        {
                            if (fromDate.Month >= listOfCamp[key].OpenFromMonth && toDate.Month <= listOfCamp[key].OpenToMonth)
                            {
                                Console.WriteLine("Camp Name \t\t Site No.\t Max Occup.\t Accessible?\t RV Len \t Utility\t Cost");

                                SearchAvailableSitesByCampId(key, fromDate, toDate);
                                //MakeReservation(fromDate, toDate);
                            }
                            else
                            {
                                Console.WriteLine(@"Invalid Date(s), park is not open on one of these dates. ");
                            }
                        }
                        //after printing out all the available sites, calls make reservation method
                        MakeReservation(fromDate, toDate);
                    }
                }
                else if (userInput == "3")
                {
                    //Console.Clear();
                    DisplayAllParks(listOfParks);
                    Console.WriteLine("Please Select A Park ID To View Campgrounds");
                    parkId = Convert.ToInt32(Console.ReadLine());
                    if (listOfParks.ContainsKey(parkId))
                    {
                        DisplayCampsByParkId(parkId, listOfParks);
                    }
                    else
                    {
                        Console.WriteLine("Invalid Park ID Selection, Please try again. ");
                    }
                }
                else if (userInput == "4")
                {
                    return;
                }

                DisplaySubMenu();
            }
        }