}//ViewCampgroundsList private List <Site> CampgroundReservationSearchResults(int park_Id, int campground_id, DateTime from_date, DateTime to_date) { // Connect to Database. Return onlty the first 5 available campsites per requirements; CampgroundDAL campgroundDal = new CampgroundDAL(DatabaseConnection); SiteDAL siteDAL = new SiteDAL(DatabaseConnection); List <Site> sites = siteDAL.GetAvailableSitesforCampground(campground_id, from_date, to_date); if (sites != null) { //Dispaly Site#, Max Occupancy, Accessibility, Max RV Length, and whether Utilities are available Console.WriteLine($"{"Site No.".PadRight(10)}{"Max Occup.".PadRight(15)}{"Accessible?".PadRight(15)}{"Max Rv Length".PadRight(15)}{"Utility".PadRight(15)}{"Stay Cost".PadRight(10)}"); foreach (Site site in sites) { TimeSpan daysBooking = (to_date.Date - from_date.Date); int days = (int)daysBooking.TotalDays; string cost = ((campgroundDal.GetCost(campground_id) * days)).ToString("C").PadRight(10); string siteWithCost = (site.ToString() + cost); Console.WriteLine(siteWithCost); } } else { NoSitesAvailable(); } return(sites); }//CampgroundReservationSearchResults
public void GetAvailableSitesTest() { //Arrange SiteDAL siteDAL = new SiteDAL(DatabaseConnection); //Act List<Site> availableSites = new List<Site>(); availableSites = siteDAL.GetAvailableSitesforCampground(fk_campground_id1, fromDate, toDate); //Assert Assert.IsTrue(availableSites.Any(site => site.Site_Number==1001)); Assert.AreEqual(availableSites.Count, 1); availableSites = siteDAL.GetAvailableSitesforCampground(fk_campground_id2, fromDate, toDate); Assert.IsTrue(availableSites.Any(site => site.Site_Number == 1002)); Assert.IsTrue(availableSites.Any(site => site.Site_Number == 1003)); Assert.AreEqual(availableSites.Count, 2); // out of season should not show.. // reserve site 1002 so it doesnt show available on request time // Open a SqlConnection object using the active transaction using (TransactionScope ts = new TransactionScope()) { using (SqlConnection connection = new SqlConnection(DatabaseConnection)) { SqlCommand command; connection.Open(); command = new SqlCommand(@"INSERT INTO reservation (site_id, name, from_date, to_date) VALUES (@site_id, 'Testing Family', @to_date, @from_date); SELECT CAST(SCOPE_IDENTITY() as int); ", connection); command.Parameters.AddWithValue("@site_id", site_id2); command.Parameters.AddWithValue("@name", "Testing"); command.Parameters.AddWithValue("@from_date",fromDate); command.Parameters.AddWithValue("@to_date", toDate); int reservation_id = (int)command.ExecuteScalar(); } availableSites = siteDAL.GetAvailableSitesforCampground(fk_campground_id2, fromDate, toDate); Assert.IsFalse(availableSites.Any(site => site.Site_Number == 1002)); Assert.IsTrue(availableSites.Any(site => site.Site_Number == 1003)); Assert.AreEqual(availableSites.Count, 1); } }