}//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
Esempio n. 2
0
        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);
        }
    }