//Methods public void RunCLI() { while (true) { Console.Clear(); Console.WriteLine("Please select a park to view details: "); Dictionary <int, Park> allParks = PrintAllParks(); Console.WriteLine("Q) Enter 'Q' to quit"); string command = Console.ReadLine(); Console.Clear(); if (int.TryParse(command, out int intParkSelection) && allParks.ContainsKey(intParkSelection)) { Park userParkChoice = allParks[intParkSelection]; PrintParkInformation(userParkChoice); bool done = false; while (!done) { PrintCampgroundReservationMenu(); string choice = Console.ReadLine(); Dictionary <int, CampGround> campgrounds = ParkCampgrounds(intParkSelection); if (int.TryParse(choice, out int intChoice) && intChoice == 1) { Console.WriteLine("{0} National Park Campgrounds", userParkChoice.Name); Console.WriteLine(); PrintCampgrounds(campgrounds); Console.WriteLine(); Console.WriteLine("Select a Commmand"); Console.WriteLine(" 1) Search for available reservation by campground ID"); Console.WriteLine(" 2) Return to previous menu"); string subChoice = Console.ReadLine(); if (int.TryParse(subChoice, out int intSubChoice) && intSubChoice == 1) { intChoice++; choice = "2"; } else if (int.TryParse(subChoice, out intSubChoice) && intSubChoice == 2)//return { done = false; } else if (!int.TryParse(subChoice, out intSubChoice)) { Console.WriteLine("Please make a valid selection"); } } if (int.TryParse(choice, out intChoice) && intChoice == 2)// Search reservation { Console.WriteLine("{0} National Park", userParkChoice.Name); Console.WriteLine("Search for campground reservation"); PrintCampgrounds(campgrounds); Console.WriteLine(); Console.Write("Which campground(enter 0 to cancel)? "); string campgroundSelection = Console.ReadLine(); Dictionary <int, CampSite> campSites = new Dictionary <int, CampSite>(); if (int.TryParse(campgroundSelection, out int intcampgroundSelection) && campgrounds.ContainsKey(intcampgroundSelection)) { DateTime[] reservationRange = ReservationDates(); decimal dailyFee = campgrounds[intcampgroundSelection].Daily_Fee; campSites = SearchReservation(reservationRange, intParkSelection); PrintAvailableCampsites(campSites, reservationRange, dailyFee);//UNDONE need to continue adding campsite selection here Console.WriteLine(); int siteSelection = SiteSelection(); string reservationName = ReservationName(); Dictionary <int, Reservation> newReservation = AddNewReservation(siteSelection, reservationName, reservationRange); ReservationConfirmation(newReservation); } else if (int.TryParse(campgroundSelection, out intcampgroundSelection) && intcampgroundSelection == 0) { intChoice = 1; choice = "1"; } else if (!int.TryParse(campgroundSelection, out intcampgroundSelection)) { Console.WriteLine("please make a valid selection"); } } else if (int.TryParse(choice, out intChoice) && intChoice == 3)//return { done = true; } else if (!int.TryParse(choice, out intChoice)) { Console.WriteLine("please make a valid selection"); } } } else if (command.ToLower() == "q") { return; } else { Console.Clear(); Console.WriteLine("please make a valid selection"); } } }