public void SearchAvailableSitesByCampId(int campId, DateTime fromDate, DateTime toDate) { TimeSpan totalDays = toDate.Subtract(fromDate); int days = Convert.ToInt32(totalDays.Days); SiteSqlDal dal = new SiteSqlDal(dbConnection); List <Site> listOfAvailableSites = dal.GetAllAvailableSitesForCamp(campId, fromDate, toDate); //when working on the bonus search - move this to new method and call it CampgroundSqlDal campDal = new CampgroundSqlDal(dbConnection); Dictionary <int, Campground> listOfCamp = campDal.GetNameByCampId(campId); if (listOfAvailableSites.Count > 0) { for (int i = 0; i < listOfAvailableSites.Count; i++) { Console.Write(listOfCamp[campId].Name + "\t\t"); Console.Write(listOfAvailableSites[i].SiteNumber + "\t\t"); Console.Write(listOfAvailableSites[i].MaxOccupancy + "\t\t"); if (listOfAvailableSites[i].Accessible) { Console.Write("Yes\t\t"); } else { Console.Write("No\t\t"); } if (listOfAvailableSites[i].MaxRVLength == 0) { Console.Write("N/A\t\t"); } else { Console.Write(listOfAvailableSites[i].MaxRVLength + " \t\t"); } if (listOfAvailableSites[i].Utilities) { Console.Write("Yes\t\t"); } else { Console.Write("N/A\t\t"); } Console.Write(listOfCamp[campId].DailyFee * days); Console.WriteLine(); } } else { Console.WriteLine("Sorry there are no available sites for your requested dates."); } }
public void GetAvailableSitesFromCampgroundTest() { //Arrange SiteSqlDal siteSqlDal = new SiteSqlDal(connectionString); //Act DateTime checkIn = new DateTime(2100, 1, 1); DateTime checkOut = new DateTime(2100, 5, 1); List <Site> sites = siteSqlDal.GetAvailableSitesFromCampground(1, checkIn, checkOut); //Assert Assert.IsNotNull(sites, "Sites list is empty!"); //Since GetAvailableSitesFromCampground caps at 5, cap our site-count at 5 here if (availableSiteCount > 5) { availableSiteCount = 5; } Assert.AreEqual(availableSiteCount, sites.Count, $"Expected a count of {availableSiteCount} for sites"); }
public void GetAllSitesFromCampgroundTest() { //Arange SiteSqlDal siteSqlDal = new SiteSqlDal(connectionString); //ACT List <Site> sites = siteSqlDal.GetAllSitesFromCampground(1); //Assert Assert.IsNotNull(sites, "Sites list is empty!"); Assert.AreEqual(siteCount, sites.Count, $"Expected a count of {siteCount} for sites"); bool found = false; foreach (Site site in sites) { if (site.SiteNumber == 1) { found = true; break; } } Assert.IsTrue(found, "Could not find Test Site named Test Site"); }
public void SearchForAvailableReservationScreen(Park park) { SiteSqlDal siteSqlDal = new SiteSqlDal(DatabaseConnection); CampgroundSqlDal campgroundSqlDal = new CampgroundSqlDal(DatabaseConnection); ReservationSqlDal reservationSqlDal = new ReservationSqlDal(DatabaseConnection); List <Campground> campgrounds = campgroundSqlDal.GetAllCampgroundsFromPark(park.Id); //Search for valid campground bool done = false; while (!done) { Console.Clear(); Console.WriteLine("Search for Campground Reservation: "); PrintAllCampgroundInfoInPark(park); int userInputCampgroundId = CLIHelper.GetInteger("\nWhich Campground number (Enter 0 to cancel)?"); if (userInputCampgroundId == 0) { Console.WriteLine("Cancelled! Press any key to continue."); Console.ReadKey(); return; } if (GetCampgroundById(userInputCampgroundId, campgrounds) == null) { Console.WriteLine("Not a valid campground! Press any key to continue."); Console.ReadKey(); return; } //Once valid campground has been chosen --> Get good dates for query DateTime checkIn = CLIHelper.GetDateTime("Check-in date: "); DateTime checkOut = CLIHelper.GetDateTime("Check-out date: "); List <Site> availableSitesFromCampgrounds = new List <Site>(); bool gotDates = false; bool showReservationPrompt = false; while (!gotDates) { availableSitesFromCampgrounds = siteSqlDal.GetAvailableSitesFromCampground(userInputCampgroundId, checkIn, checkOut); if (checkOut.CompareTo(checkIn) <= 0) { Console.WriteLine("Cannot check-out earlier or same day as check-in. Press any key to continue"); Console.ReadKey(); showReservationPrompt = false; gotDates = true; //could allow user a choice to return or enter new dates } else if (availableSitesFromCampgrounds.Count < 1) { string dateReset = CLIHelper.GetString("\nThere are no available sites. \nWould you like to enter an alternate date range?\n\tYes or No?").ToLower(); if (dateReset == "yes" || dateReset == "y") { Console.WriteLine(); checkIn = CLIHelper.GetDateTime("Check-in date: "); checkOut = CLIHelper.GetDateTime("Check-out date: "); gotDates = false; } else if (dateReset == "no" || dateReset == "n") { gotDates = true; } else { Console.WriteLine("Invalid input. Try again"); gotDates = false; } } else { showReservationPrompt = true; gotDates = true; } } if (showReservationPrompt) { int daysReserved = checkOut.Subtract(checkIn).Days; Console.WriteLine("Site Id".PadRight(10) + "Max Occup.".PadRight(15) + "Accessible?".PadRight(15) + "Max RV Length".PadRight(20) + "Utility".PadRight(15) + "Cost\n"); foreach (Site site in availableSitesFromCampgrounds) { Console.WriteLine(site.GetPrintString(daysReserved, GetCampgroundById(userInputCampgroundId, campgrounds).DailyFee)); } Console.WriteLine(); MakeReservationPrompts(checkIn, checkOut, availableSitesFromCampgrounds); done = true; } } }