public void PrintCampgroundsInParkSelectMenu(string parkId, string parkName) { while (true) { PrintHeader(); CampgroundSqlDAL dal = new CampgroundSqlDAL(connectionString); List <Campground> campgrounds = dal.GetAllAvailableCampgroundsInPark(parkId); if (campgrounds.Count > 0) { string campgroundId = "ID#"; string name = "Name:"; string openDate = "Open (mm):"; string closeDate = "Close (mm):"; string dailyFee = "Daily Fee:"; Console.WriteLine($"{parkName} National Park Campgrounds"); Console.WriteLine(); Console.WriteLine($"{campgroundId.PadRight(5)}{name.PadRight(35)}{openDate.PadRight(20)}{closeDate.PadRight(20)}{dailyFee.PadRight(10)}"); foreach (Campground campground in campgrounds) { Console.WriteLine($"#{campground.Campground_Id.ToString().PadRight(4)}{campground.Name.PadRight(35)}{numberMonth[campground.Open_From_Mm].PadRight(20)}{numberMonth[campground.Open_To_Mm].PadRight(20)}{campground.Daily_Fee.ToString("C").PadRight(10)}"); } } else { Console.WriteLine("**** NO AVAILABLE CAMPGROUNDS IN THIS PARK ****"); break; } Console.WriteLine(); Console.WriteLine("Select a Command"); Console.WriteLine("1) Search for Available Reservation"); Console.WriteLine("2) Return to Previous Screen"); string userInput = Console.ReadLine(); Console.Clear(); if (userInput != "1" && userInput != "2") { Console.Clear(); Console.WriteLine("Please enter a valid input"); Freeze(); } else if (userInput == "1") { SearchForCampgroundReservation(parkId, parkName); } else if (userInput == "2") { break; } } }
public void CampgroundSqlDALReturnAllCampgrounds() { using (TransactionScope transaction = new TransactionScope()) { //Arrange int id = InsertFakeCampground("Random"); CampgroundSqlDAL testClass = new CampgroundSqlDAL(connectionString); //Act List <Campground> campgrounds = testClass.GetAllAvailableCampgroundsInPark("3"); //Assert Assert.AreEqual(id, campgrounds[campgrounds.Count - 1].Campground_Id); } }
private void SearchForCampgroundReservation(string parkId, string parkName) { while (true) { PrintHeader(); CampgroundSqlDAL dal = new CampgroundSqlDAL(connectionString); List <Campground> campgrounds = dal.GetAllAvailableCampgroundsInPark(parkId); string userCampground; bool isValidCampground = false; bool isValidArrivalDate = false; bool isValidDepartureDate = false; string userDateArrive; string userDateDepart; if (campgrounds.Count > 0) { string campgroundId = "ID#"; string name = "Name:"; string openDate = "Open (mm):"; string closeDate = "Close (mm):"; string dailyFee = "Daily Fee:"; Console.WriteLine($"{campgroundId.PadRight(5)}{name.PadRight(35)}{openDate.PadRight(20)}{closeDate.PadRight(20)}{dailyFee.PadRight(10)}"); foreach (Campground campground in campgrounds) { Console.WriteLine($"#{campground.Campground_Id.ToString().PadRight(4)}{campground.Name.PadRight(35)}{numberMonth[campground.Open_From_Mm].PadRight(20)}{numberMonth[campground.Open_To_Mm].PadRight(20)}{campground.Daily_Fee.ToString("C").PadRight(10)}"); } } else { Console.WriteLine("**** NO AVAILABLE CAMPGROUNDS IN THIS PARK ****"); break; } Console.WriteLine(); Console.Write("Which campground (enter 0 to cancel)? "); userCampground = Console.ReadLine(); if (userCampground == "0") { Console.Clear(); break; } //else if(userCampground) bool canParse = int.TryParse(userCampground, out int num); bool containsID = false; if (!canParse) { Console.Clear(); Console.WriteLine("Please Enter a Valid Campground ID#"); Freeze(); } else { foreach (Campground campground in campgrounds) { if (campground.Campground_Id == num) { containsID = true; } } if (!containsID) { Console.Clear(); Console.WriteLine("Please Enter a Valid Campground ID#"); Freeze(); } else { Console.Write("What is the arrival date? (mm/dd/yyyy) "); userDateArrive = Console.ReadLine(); bool canParseArrivalDate = DateTime.TryParse(userDateArrive, out DateTime arrive); Console.Write("What is the departure date? (mm/dd/yyyy)"); userDateDepart = Console.ReadLine(); bool canParseDepartureDate = DateTime.TryParse(userDateDepart, out DateTime depart); TimeSpan timeSpan = depart.Subtract(arrive); int totalDaysOfStay = (int)timeSpan.TotalDays; int totalPossibleDaysLeftInSeason = 0; bool stayPastBoundaries = false; Console.Clear(); if (canParse) { foreach (Campground campground in campgrounds) { if (campground.Campground_Id == num) { isValidCampground = true; //DateTime campSeasonStart = DateTime.Parse($"{campground.Open_From_Mm}/01/2018"); DateTime campSeasonEnd = DateTime.Parse($"{campground.Open_To_Mm}/{daysInMonth[campground.Open_To_Mm]}/{arrive.Year}"); timeSpan = campSeasonEnd.Subtract(arrive); totalPossibleDaysLeftInSeason = (int)timeSpan.TotalDays; if (totalPossibleDaysLeftInSeason < totalDaysOfStay) { stayPastBoundaries = true; } if (campground.Open_From_Mm == 1 && campground.Open_To_Mm == 12) { stayPastBoundaries = false; } } } } if (isValidCampground && canParseArrivalDate && canParseDepartureDate && userCampground != "0" && arrive <= depart && !stayPastBoundaries) { DisplaySitesMatchingSearchCriteriaSelectMenu(userCampground, arrive, depart); } else if (!isValidCampground) { Console.Clear(); Console.WriteLine("Please Enter a Valid Campground ID#"); Freeze(); } else if (!canParseArrivalDate) { Console.Clear(); Console.WriteLine("Please Enter your arrival date in the correct format"); Freeze(); } else if (!canParseDepartureDate) { Console.Clear(); Console.WriteLine("Please Enter your departure date in the correct format"); Freeze(); } else if (arrive > depart) { Console.Clear(); Console.WriteLine("Please Enter an arrival date that is an earlier date than the departure date."); Freeze(); } else if (stayPastBoundaries) { Console.Clear(); Console.WriteLine("The camp will close during your stay. Please select a smaller date-range"); Freeze(); } else { Console.Clear(); Console.WriteLine("At least one of your inputs is invalid. Please enter valid inputs."); Freeze(); } } } } }