public void CampGroundMenu(int parkId) { Console.WriteLine("Select a CampGround Option: "); Console.WriteLine("1) View Campgrounds "); Console.WriteLine("2) Search for reservation "); Console.WriteLine("3) Return to Previous Screen "); string input = Console.ReadLine(); Console.Clear(); IParkDAL parkDal = new ParkSqlDAL(DatabaseConnection); ICampGroundDAL cgDal = new CampGroundSqlDAL(DatabaseConnection); Park park = parkDal.GetParkById(parkId); IList <CampGround> campGrounds = cgDal.GetCampGroundByPark(parkId); if (input == "1") { if (campGrounds.Count > 0) { Console.WriteLine(park.Name + " " + "National Park Campgrounds"); Console.WriteLine(); Console.WriteLine("Campgound Id".PadRight(21) + "Name".PadRight(40) + "Open".PadRight(20) + "Close".PadRight(20) + "Daily Fee"); foreach (CampGround campGround in campGrounds) { Console.WriteLine("#" + campGround.CampGroundId.ToString().PadRight(20) + campGround.Name.ToString().PadRight(40) + GetMonthString(campGround.OpenFrom).ToString().PadRight(20) + GetMonthString(campGround.OpenTo).ToString().PadRight(20) + "$" + campGround.DailyFee.ToString("0.00")); } Console.WriteLine(); ReservationMenu(parkId); } } else if (input == "2") { if (campGrounds.Count > 0) { Console.WriteLine(park.Name + " " + "National Park Campgrounds"); Console.WriteLine(); Console.WriteLine(" Campgound Id".PadRight(24) + "Name".PadRight(40) + "Open".PadRight(20) + "Close".PadRight(20) + "Daily Fee"); int choice = 1; foreach (CampGround campGround in campGrounds) { Console.WriteLine(choice + ")" + " " + "#" + campGround.CampGroundId.ToString().PadRight(20) + campGround.Name.ToString().PadRight(40) + GetMonthString(campGround.OpenFrom).ToString().PadRight(20) + GetMonthString(campGround.OpenTo).ToString().PadRight(20) + "$" + campGround.DailyFee.ToString("0.00")); choice++; } Console.WriteLine(); ReservationMenu(parkId); } } else if (input == "3") { Console.Clear(); PrintMenu(); } else { Console.WriteLine("Invalid Entry, please try again."); } }
public void ReservationMenu(int parkId) { Console.WriteLine("Select an Option: "); Console.WriteLine("1) Search for Available Reservation "); Console.WriteLine("2) Return to Previous Screen "); string input = Console.ReadLine(); if (input == "1") { //CampGroundMenu(parkId); // Prompt&Get for campgroundID: campgroundId Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Which campground (enter 0 to cancel)? "); string inputCG = Console.ReadLine(); if (inputCG == "0") { Console.WriteLine(); ReservationMenu(parkId); } // Prompt&Get for arrive date: fromDate Console.WriteLine("What is the arrival date (mm/dd/yyyy)? "); string inputFD = Console.ReadLine(); // Prompt&Get for depart date: toDate Console.WriteLine("What is the departure date (mm/dd/yyyy)? "); string inputTD = Console.ReadLine(); int campGroundId = int.Parse(inputCG); DateTime fromDate = DateTime.Parse(inputFD); DateTime toDate = DateTime.Parse(inputTD); ISiteDAL siteDal = new SiteSqlDAL(DatabaseConnection); IList <Site> sites = siteDal.GetAvailableSite(campGroundId, fromDate, toDate); ICampGroundDAL cgDal = new CampGroundSqlDAL(DatabaseConnection); IList <CampGround> campGrounds = cgDal.GetCampGroundByPark(parkId); double totalDays = (toDate - fromDate).TotalDays; if (sites.Count <= 0) { Console.WriteLine("No available campsites, please enter an alternate DateRange. "); } else if (sites.Count > 0 && sites.Count < 8) { Console.Clear(); Console.WriteLine("Results Matching Your Search Criteria"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(" Site No.".PadRight(20) + "Max Occup.".PadRight(20) + "Accessible?".PadRight(20) + "RV Len".PadRight(10) + "Utility".PadRight(10) + "Cost"); int choice = 1; foreach (Site site in sites) { // Added ToString() to limit cost value to two decimal places Console.WriteLine(choice + ")" + " " + site.SiteNumber.ToString().PadRight(20) + site.MaxOccupancy.ToString().PadRight(20) + site.IsAccessible.ToString().PadRight(20) + site.MaxRvLength.ToString().PadRight(10) + site.Utilities.ToString().PadRight(10) + "$" + (campGrounds[campGroundId - 1].DailyFee * (decimal)totalDays).ToString("0.00")); choice++; } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Which site should be reserved (enter 0 to cancel)?"); string inputSite = Console.ReadLine(); Console.WriteLine("What name should the reservation be made under?"); string inputName = Console.ReadLine(); Reservation reservation = new Reservation() { Name = inputName, SiteId = int.Parse(inputSite), FromDate = fromDate, ToDate = toDate, BookDate = DateTime.Now }; IReservationDAL resDal = new ReservationSqlDAL(DatabaseConnection); IList <Reservation> reservations = resDal.BookReservation(reservation); Console.WriteLine(); Console.WriteLine($"The reservation has been made and the Confirmation ID is {reservation.ReservationId}"); } } else if (input == "2") { Console.Clear(); IParkDAL parkDal = new ParkSqlDAL(DatabaseConnection); ICampGroundDAL cgDal = new CampGroundSqlDAL(DatabaseConnection); Park park = parkDal.GetParkById(parkId); IList <CampGround> campGrounds = cgDal.GetCampGroundByPark(parkId); if (campGrounds.Count > 0) { Console.WriteLine(park.Name + " " + "National Park Campgrounds"); Console.WriteLine(); Console.WriteLine("Campgound Id".PadRight(21) + "Name".PadRight(40) + "Open".PadRight(20) + "Close".PadRight(20) + "Daily Fee"); foreach (CampGround campGround in campGrounds) { Console.WriteLine("#" + campGround.CampGroundId.ToString().PadRight(20) + campGround.Name.ToString().PadRight(40) + GetMonthString(campGround.OpenFrom).ToString().PadRight(20) + GetMonthString(campGround.OpenTo).ToString().PadRight(20) + "$" + campGround.DailyFee.ToString("0.00")); } } Console.WriteLine(); CampGroundMenu(parkId); } }