private List <Site> GetAvailableSites(Campground selectedCampground, List <int> bookedSiteIds) { //assemble list of sites in campground from database //if a site's ID is NOT in the list of booked site IDs, it is added to list of *available sites* SiteDAL dal = new SiteDAL(DatabaseConnection); List <Site> allSitesInCampground = dal.AllSitesInCampground(selectedCampground.CampgroundId); List <Site> availableSites = new List <Site>(); foreach (Site thisSite in allSitesInCampground) { bool booked = false; foreach (int bookedId in bookedSiteIds) { if (thisSite.SiteId == bookedId) { booked = true; } } if (booked == false) { availableSites.Add(thisSite); } } return(availableSites); }
public void GetAllSitesParkTest() { SiteDAL testObj = new SiteDAL(connectionString); List <Site> sites = testObj.GetAvailableSitesPark(parkID, DateTime.Today, DateTime.Today); Assert.AreEqual(1, sites.Count); }
public void GetAvailableCampgroundsTest() { int siteId; using (SqlConnection conn = new SqlConnection(connectionstring)) { conn.Open(); SqlCommand cmd = new SqlCommand("insert into site (accessible, max_occupancy, campground_id, site_number, utilities) values ('true', 100, 1, 1000, 'false');", conn); cmd.ExecuteNonQuery(); cmd = new SqlCommand("SELECT CAST(SCOPE_IDENTITY() as int);", conn); siteId = Convert.ToInt32(cmd.ExecuteScalar()); } Reservation r = new Reservation(); r.Name = "Peter"; r.Site_id = siteId; r.From_date = Convert.ToDateTime("01/01/01"); r.To_date = Convert.ToDateTime("01/05/01"); r.Create_date = DateTime.Now; SiteDAL dal = new SiteDAL(connectionstring); List <Site> output = dal.GetAvailableCampsites(1, Convert.ToDateTime("01/02/01"), Convert.ToDateTime("01/03/01")); Assert.IsTrue(output.Count > 0); }
public void SiteCountTest() { SiteDAL theseSites = new SiteDAL(connectionString); List <SiteModel> siteList = theseSites.AvailableSiteSearch("1", "02-21-2018", "02-23-2018"); Assert.AreEqual(siteCount + 1, siteList.Count); }
static void Main(string[] args) { // Get the connection string from the appsettings.json file IConfigurationBuilder builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); IConfigurationRoot configuration = builder.Build(); string connectionString = configuration.GetConnectionString("Project"); /******************************************************************** * // If you do not want to use CLIMenu, you can remove the following *********************************************************************/ // Create any DAOs needed here, and then pass them into main menu... ParkDAL parkDal = new ParkDAL(connectionString); CampgroundDAL campDal = new CampgroundDAL(connectionString); SiteDAL siteDal = new SiteDAL(connectionString); ReservationDAL reservationDAL = new ReservationDAL(connectionString); MainMenu mainMenu = new MainMenu(parkDal, campDal, siteDal, reservationDAL); // You'll probably be adding daos to the constructor //Run the menu. mainMenu.Run(); }
}//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 GetSitesTest() { SiteDAL dal = new SiteDAL(connectionString); List <Site> sites = dal.GetSites(campgroundId); Assert.AreEqual(1, sites.Count); Assert.AreEqual(500, sites[0].MaxRVLength); }
public void GetReservationTest() { SiteDAL dal = new SiteDAL(connectionString); List <Reservation> reservations = dal.GetReservation(campgroundId); Assert.AreEqual(1, reservations.Count); Assert.AreEqual("smith", reservations[0].Name); }
public void GetUnreservedCampsitesTest() { SiteDAL siteDAL = new SiteDAL(connectionString); IList <Site> testSiteList = siteDAL.GetUnreservedCampsites("2025-03-10", "2025-03-11", createdCampgroundID, 0, false, 0, false); Assert.IsNotNull(testSiteList); Assert.AreEqual(1, testSiteList.Count); }
public void AllSitesInCampgroundTest() { SiteDAL siteDal = new SiteDAL(connectionString); int campGroundId = 1; List <Site> sites = siteDal.AllSitesInCampground(campGroundId); Assert.AreEqual(numberOfSites + 1, sites.Count); }
private void SearchForAvailableReservations(int ParkID) { string CampgroundChoice = CLIHelper.GetString("Which campground would you like?"); string ArrivalDate = CLIHelper.GetDate("What is the arrival date?"); string DepartureDate = CLIHelper.GetDate("What is the departure date?"); SiteDAL sdal = new SiteDAL(DatabaseConnection); List <Site> slist = sdal.ViewAvailReservations(CampgroundChoice, ArrivalDate, DepartureDate); if (slist.Count > 0) { CampgroundDAL cgdal = new CampgroundDAL(DatabaseConnection); double camgroundCost = cgdal.GetCampgroundCost(CampgroundChoice); Console.WriteLine("Available sites & details for your dates:"); Console.WriteLine("Site ID" + " " + "Max Occupancy" + " " + "Accessible?" + " " + "Max RV Length" + " " + "Utilities" + " " + "Cost"); foreach (Site item in slist) { Console.Write(" " + item.site_id.ToString().PadRight(9) + " " + item.max_occupancy.ToString().PadRight(10) + " " + TrueFalse(item.accessible).ToString().PadRight(14) + " " + item.max_rv_length.ToString().PadRight(10) + " " + TrueFalse(item.utilities).ToString().PadRight(8) + " " + camgroundCost); Console.WriteLine(); } string siteChoiceToReserve = CLIHelper.GetString("Which site should be reserved (enter 0 to cancel)"); if (siteChoiceToReserve == "0") { return; } bool SiteIsInTheList = false; foreach (Site item in slist) { if (item.site_id.ToString() == siteChoiceToReserve) { SiteIsInTheList = true; } } if (!SiteIsInTheList) { Console.WriteLine("Sorry, that Site ID isn't in our list! Please start over."); return; } string name = CLIHelper.GetString("What name should the reservation be made under?"); MakeReservation(siteChoiceToReserve, name, ArrivalDate, DepartureDate); } else { Console.WriteLine("Sorry, no campsites are available. Please try again with different dates."); return; } }
private void ReserveSite(string name, int site, DateTime start, DateTime end) { SiteDAL dal = new SiteDAL(databaseConnection); //List<Reservation> reservations = int makeRes = dal.MakeReservation(name, site, start, end); //reservations.ForEach(res => //{ Console.WriteLine($"The reservation has been made and the confirmation id is {makeRes}"); //}); }
public void GetAvailableSitesParkwide_Test(int parkId, string fromDate, string toDate, int expectedCount) { //Arrange SiteDAL dal = new SiteDAL(ConnectionString); //Act var sites = dal.GetSitesParkwide(parkId, Convert.ToDateTime(fromDate), Convert.ToDateTime(toDate)); //Assert Assert.AreEqual(expectedCount, sites.Count); }
public void GetSites() { //Arrange SiteDAL siteDAL = new SiteDAL(_connectionString); //Act List <Site> sites = siteDAL.GetSites(campground); //Assert Assert.AreEqual(1, sites.Count); Assert.AreEqual(_siteId, sites[0].SiteId); }
public void MakeReservationTest() { int initialCount = reservationCount(); SiteDAL dal = new SiteDAL(connectionString); //Reservation reservations = new Reservation(); //reservations.Name = "jones"; //reservations.SiteId = siteId; DateTime StartDate = new DateTime(2016, 10, 12); DateTime EndDate = new DateTime(2016, 10, 15); dal.MakeReservation("shaw", siteId, StartDate, EndDate); Assert.AreEqual(initialCount + 1, reservationCount()); }
public void SearchForSiteTest() { // Arrange SiteDAL sDAL = new SiteDAL(connectionString); //Act IList <CampSite> site = sDAL.SearchForSite(1, 1, DateTime.Now.AddDays(4), DateTime.Now.AddDays(8)); //Assert int sites = site.Count; Assert.AreEqual(4, sites); }
private void SeeUpcomingReservationsForParkCLI(Park park) { //Title Display Console.WriteLine("UNDER CONSTRUCTION: Upcoming Reservation feature coming soon!"); Console.Clear(); string snName = "Upcoming Park Reservations Menu"; Console.SetCursorPosition((Console.WindowWidth - snName.Length) / 2, Console.CursorTop); Console.WriteLine(snName); string snNameDash = "--------------------------------------"; Console.SetCursorPosition((Console.WindowWidth - snNameDash.Length) / 2, Console.CursorTop); Console.WriteLine(snNameDash); Console.WriteLine(); //Set up DALs and get list of Reservations ReservationDAL reservationDAL = new ReservationDAL(DatabaseConnection); List <Reservation> upcomingReservations = reservationDAL.GetReservationsForNext30DaysInPark(park); CampgroundDAL campgroundDAL = new CampgroundDAL(DatabaseConnection); List <Campground> allCampgroundsForPark = campgroundDAL.GetAllCampgroundsForPark(park); SiteDAL siteDAL = new SiteDAL(DatabaseConnection); List <Site> allSites = new List <Site>(); //Display Reservations if (upcomingReservations.Count() == 0) { Console.WriteLine($"There are no reservations at {park.Name} National Park in the next 30 days."); } else { Console.WriteLine($"Reservations at {park.Name} National Park beginning within the next 30 days:"); Console.WriteLine(); int upcomingReservationDisplayCounter = 0; foreach (Reservation item in upcomingReservations) { if (upcomingReservationDisplayCounter == 0) { Console.WriteLine("{0,-35}{1,-20}{2,-10}{3,-15}{4,-10}", "RESERVATION NAME", "CAMPGROUND", "SITE", "START DATE", "END DATE"); } Console.WriteLine("{0,-35}{1,-20}{2,-10}{3,-15}{4,-10}", item.Name, item.CampgroundName, item.SiteId.ToString(), item.FromDate.ToShortDateString(), item.ToDate.ToShortDateString()); upcomingReservationDisplayCounter++; } } Console.WriteLine(); Console.WriteLine("Press any key to return to Park Menu"); Console.ReadKey(); }
public void Test_NoReservations_ReturnsOpenSiteId() { //Arrange SiteDAL dal = new SiteDAL(DatabaseConnection); DateTime fromDate = DateTime.Now; DateTime toDate = DateTime.Now.AddDays(5); //Act List <Site> availableSites = dal.ViewAvailReservations(campgroundID.ToString(), fromDate.ToString(), toDate.ToString()); //Assert Assert.AreEqual(1, availableSites.Count); Assert.AreEqual(SiteID, availableSites[0].site_id); }
public void GetSites(int campgroundId, int expectedOutput) { // Arrange SiteDAL site = new SiteDAL(ConnectionString); // Act var listOfSites = site.GetSites(new Campground() { CampgroundId = campgroundId }); // Assert Assert.AreEqual(expectedOutput, listOfSites.Count); }
public void FindAvailableSites(int campgroundID, int expectedOutput) { // Arrange SiteDAL site = new SiteDAL(ConnectionString); // Act var listOfReservations = site.FindAvailableSites(new DateTime(2018, 4, 25), new DateTime(2018, 6, 19), new Campground() { CampgroundId = campgroundID }); // Assert Assert.AreEqual(expectedOutput, listOfReservations.Count); }
public void FindAvailableSitesAdvanced(int campgroundID, int expectedOutput) { // Arrange SiteDAL site = new SiteDAL(ConnectionString); // Act var listOfReservations = site.FindAvailableSites(new DateTime(2019, 6, 10), new DateTime(2019, 6, 15), new Campground() { CampgroundId = campgroundID }, 6, true, 0, false); // Assert Assert.AreEqual(expectedOutput, listOfReservations.Count); }
private void SearchForSite() { Console.Clear(); //clears the screen and displays the campground options Console.WriteLine(); Console.WriteLine("**Please note, if your reservation date is during the park off-season, campgrounds will be unavailable to book**"); GetCampGrounds(); Console.WriteLine(); //searches to book reservation tempCampId = CLIHelper.GetInteger("Which campground would you like to reserve? (enter C to cancel and go back to park listing)"); arriveDate = CLIHelper.GetDateTime("What is the arrival date? __/__/____"); departDate = CLIHelper.GetDateTime("What is the departure date? __/__/____"); SiteDAL dal = new SiteDAL(DatabaseConnection); IList <CampSite> campSites = dal.SearchForSiteTotalAmt(tempParkId, tempCampId, arriveDate, departDate); Console.WriteLine(); Console.WriteLine(("Site No.").PadRight(15) + ("Max Occup.").PadRight(30) + ("Accessible?").PadRight(15) + ("Max RV Length").PadRight(15) + ("Utility").PadRight(15) + ("Fee").PadRight(15)); if (campSites.Count > 0) { foreach (CampSite site in campSites) { Console.WriteLine((site.SiteNumber.ToString()).PadRight(15) + (site.MaxOccupancy.ToString()).PadRight(30) + (site.Accessible.ToString()).PadRight(15) + (site.MaxRVLength.ToString()).PadRight(15) + (site.Utilities.ToString()).PadRight(15) + "$" + (site.Fee.ToString()).PadRight(15)); } BookReservation(); } else { Console.WriteLine("**** NO SPOTS OPEN TO RESERVE ****"); Console.WriteLine("Press Y to go back to park options" + Environment.NewLine + "Press N to Exit"); string choice = Console.ReadLine(); switch (choice.ToLower()) { case "y": DisplayParkOptions(); break; case "n": Environment.Exit(0); break; default: Console.WriteLine("Please Choose a valid option."); break; } } }
public void SearchForSiteTotalTest() { // Arrange SiteDAL sDAL = new SiteDAL(connectionString); //Act double p = 0; IList <CampSite> site = sDAL.SearchForSiteTotalAmt(1, 1, DateTime.Now.AddDays(4), DateTime.Now.AddDays(8)); foreach (CampSite s in site) { p = s.Fee; } //Assert Assert.AreEqual(140.00D, p); }
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); } }
public void GetAllSitesForCampgroundTest() { //Arrange SiteDAL siteDAL = new SiteDAL(DatabaseConnection); List<Site> testSites1 = new List<Site>(); List<Site> testSites2 = new List<Site>(); //ACT testSites1 = siteDAL.GetAllSitesForCampground(fk_campground_id1); testSites2 = siteDAL.GetAllSitesForCampground(fk_campground_id2); //Assert Assert.IsTrue(testSites1.Any(site => site.Site_Number == 1001)); Assert.AreEqual(testSites1.Count, 1); Assert.AreEqual(testSites2.Count, 2); }
private void MakeReservationCLI(Campground campground, int siteID, DateTime userArrivalDate, DateTime userDepartureDate) { string reservationName = CLIHelper.GetString("What name should the reservation be made under?"); Site chosenSite = new Site(); ReservationDAL reservationDAL = new ReservationDAL(DatabaseConnection); Reservation finalReservation = new Reservation() { SiteId = siteID, Name = reservationName, FromDate = userArrivalDate, ToDate = userDepartureDate, CreateDate = DateTime.Now }; bool noExceptions = true; try { reservationDAL.MakeReservation(finalReservation); } catch (Exception e) { noExceptions = false; Console.WriteLine(e.Message); Console.WriteLine("Press Any Key to Return to Park Menu"); Console.ReadKey(); } if (noExceptions) { SiteDAL siteDAL2 = new SiteDAL(DatabaseConnection); List <Site> allSites = siteDAL2.GetSites(campground); Dictionary <int, Site> siteDictionaryForCampground = new Dictionary <int, Site>(); foreach (Site item in allSites) { siteDictionaryForCampground.Add(item.SiteId, item); } chosenSite = siteDictionaryForCampground[finalReservation.SiteId]; List <Reservation> allReservations = reservationDAL.GetCurrentReservations(chosenSite); Console.WriteLine($"Reservation Booked! Your Confirmation Number is {allReservations[0].ReservationId}"); Console.WriteLine(); Console.WriteLine("Press any Key to return to menu"); Console.ReadKey(); } }
public void GetAvailableSitesTest() { SiteDAL siteDAL = new SiteDAL(connectionString); arriveDate = Convert.ToDateTime("12/17/2017"); departDate = Convert.ToDateTime("12/18/2017"); List <Site> sites = siteDAL.GetAvailableSites(cgID, arriveDate, departDate); Assert.AreEqual(1, sites.Count); //arriveDate = Convert.ToDateTime("12-16-2017"); //departDate = Convert.ToDateTime("12-19-2017"); //List<Site> siteTest2 = siteDAL.GetAvailableSites(cgID, arriveDate, departDate); //Assert.AreEqual(0, siteTest2.Count); }
private void CheckAvailability() { GetAllCampgrounds(); int campgroundId = CLIHelper.GetInteger("Please select which Campground Id you would like to check the availability of : "); DateTime startDate = CLIHelper.GetDateTime("When would you like start your reservation?"); DateTime endDate = CLIHelper.GetDateTime("When would you like end your reservation?"); CampgroundDAL cdal = new CampgroundDAL(DatabaseConnection); Campground reservedCampground = cdal.GetCampground(campgroundId); if (startDate.Month < reservedCampground.OpenFromMM) { Console.WriteLine("The campground is not open yet."); return; } if (endDate.Month > reservedCampground.OpenToMM) { Console.WriteLine("The campground is closed for the year."); return; } Console.WriteLine(); SiteDAL sdal = new SiteDAL(DatabaseConnection); List <Site> site = sdal.GetAvailableCampsites(campgroundId, startDate, endDate); PrintSites(site); Console.ReadLine(); string input = CLIHelper.GetString(" Would you Like to confirm your reservation?").ToLower(); if (input == "yes" || input == "y") { HelpMakeReservation(campgroundId, startDate, endDate); } else { Console.WriteLine("Returning to Main Menu"); Console.ReadLine(); } }
public void RequestSiteWhenMyStayIsExactlyTheSameAsASavedReservation() { //Arrange SiteDAL dal = new SiteDAL(DatabaseConnection); DateTime fromDate = DateTime.Now.AddDays(2); DateTime toDate = DateTime.Now.AddDays(8); DateTime alreadyInFromDate = DateTime.Now.AddDays(2); DateTime alreadyInToDate = DateTime.Now.AddDays(8); ReservationDAL rdal = new ReservationDAL(DatabaseConnection); rdal.AddReservation(campgroundID.ToString(), "TestFamily", alreadyInFromDate.ToString(), alreadyInToDate.ToString()); //Act List <Site> availableSites = dal.ViewAvailReservations(SiteID.ToString(), fromDate.ToString(), toDate.ToString()); //Assert Assert.AreEqual(0, availableSites.Count); }
public void RequestSitesThatOverlapTheStartOfASavedReservation() { //Arrange SiteDAL dal = new SiteDAL(DatabaseConnection); DateTime fromDate = DateTime.Now.AddDays(3); DateTime toDate = DateTime.Now.AddDays(10); DateTime alreadyInFromDate = DateTime.Now.AddDays(1); DateTime alreadyInToDate = DateTime.Now.AddDays(4); ReservationDAL rdal = new ReservationDAL(DatabaseConnection); rdal.AddReservation(campgroundID.ToString(), "TestFamily", alreadyInFromDate.ToString(), alreadyInToDate.ToString()); //Act List <Site> availableSites = dal.ViewAvailReservations(SiteID.ToString(), fromDate.ToString(), toDate.ToString()); //Assert Assert.AreEqual(0, availableSites.Count); }