示例#1
0
        //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");
                }
            }
        }