private void Reservation(int campgroundId)
        {
            DateTime arrivalInput = CLIHelper.GetDateTime("What is your desired arrival date?(MM/DD/YYYY)");
            DateTime fromDate     = Convert.ToDateTime(arrivalInput);

            DateTime departureInput = CLIHelper.GetDateTime("When would you like to leave?(MM/DD/YYYY)");
            DateTime toDate         = Convert.ToDateTime(departureInput);

            Console.WriteLine("Showing available sites ");

            SiteSqlDAL  sal          = new SiteSqlDAL(connectionString);
            List <Site> allCampSites = sal.CampsiteAvailability(campgroundId, fromDate, toDate);

            if (allCampSites.Count() <= 0)
            {
                Console.WriteLine("No available camp sites! Please make a new selection.");
                return;
            }
            else
            {
                foreach (Site s in allCampSites)
                {
                    Console.WriteLine();
                    Console.WriteLine("SiteId " + s.SiteID);
                    Console.WriteLine("Campground_Id " + s.CampgroundID);
                    Console.WriteLine("SiteNumber " + s.SiteNumber);
                    Console.WriteLine("MaxOccupancy " + s.MaxOccupancy);
                    Console.WriteLine("Handicap Accessible " + s.Accessible);
                    Console.WriteLine("MaxRvLength " + s.MaxRvLength);
                    Console.WriteLine("Utilities are available " + s.Utilities);
                }

                ReservationSqlDAL ral = new ReservationSqlDAL(connectionString);

                campgroundPrice = (ral.CostOfCampground(campgroundId) * (toDate.DayOfYear - fromDate.DayOfYear));

                Console.WriteLine("The total fee for these sites are: " + campgroundPrice.ToString("C"));
                Console.WriteLine();

                int campSiteInput = CLIHelper.GetInteger("What Camp site are you booking for?");
                Console.WriteLine();

                string nameInput = CLIHelper.GetString("What name should the reservation be under?");
                Console.WriteLine();

                DateTime createDate = DateTime.Now;
                int      wasReservationSuccessful = ral.MakeReservations(campSiteInput, nameInput, fromDate, toDate, createDate);

                if (wasReservationSuccessful > 0)
                {
                    Console.WriteLine("Success!");

                    Console.WriteLine("Here is your conformation ID: " + wasReservationSuccessful);
                }
                else
                {
                    Console.WriteLine("Sorry but that site is alreaday booked. Please try again.");
                }
            }
        }
示例#2
0
        public void CampsiteAvailability()
        {
            int      fakePark;
            int      fakeCampground;
            int      fakeSite;
            DateTime fakeFrom              = Convert.ToDateTime("2020 / 01 / 05");
            DateTime fakeTo                = Convert.ToDateTime("2020 / 01 / 07");
            DateTime fakeCreate            = Convert.ToDateTime("10 / 06 / 2017");
            DateTime fakeReservationCreate = DateTime.Now;
            int      fakeOpenMonth         = 1;
            int      fakeCloseMonth        = 11;
            int      fakeReservation;
            decimal  fakeMoney = 2.00M;

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("Insert into Park values ('Big Fake Park', 'FAKE EVERYWHERE', '1919-02-26', 0000, 0, 'THIS IS SO FAKE ITS FUNNY')", conn);
                cmd.ExecuteNonQuery();
                cmd      = new SqlCommand("select cast(scope_identity() as int);", conn);
                fakePark = Convert.ToInt32(cmd.ExecuteScalar());

                string fakeParkString = $"Insert into Campground values ({fakePark}, 'FAKE CAMPGROUND', {fakeOpenMonth}, {fakeCloseMonth}, {fakeMoney})";

                SqlCommand cmd2 = new SqlCommand(fakeParkString, conn);
                cmd2.ExecuteNonQuery();
                cmd2           = new SqlCommand("select cast(scope_identity() as int)", conn);
                fakeCampground = Convert.ToInt32(cmd2.ExecuteScalar());

                string fakeCampSiteString = $"Insert into Site values ({fakeCampground}, 2, 4, 0, 10, 1)";

                SqlCommand cmd3 = new SqlCommand(fakeCampSiteString, conn);
                cmd3.ExecuteNonQuery();
                cmd3     = new SqlCommand("select cast(scope_identity() as int)", conn);
                fakeSite = Convert.ToInt32(cmd3.ExecuteScalar());

                string fakeReservationString = $"Insert into Reservation values ({fakeSite}, 'FAKE HUMAN NAME', '2017/09/01', '2017/09/05', '10/06/2017')";

                SqlCommand cmd4 = new SqlCommand(fakeReservationString, conn);
                cmd4.ExecuteNonQuery();
                cmd4            = new SqlCommand("select cast(scope_identity() as int)", conn);
                fakeReservation = Convert.ToInt32(cmd4.ExecuteScalar());
            }

            SiteSqlDAL  sal    = new SiteSqlDAL(connectionString);
            List <Site> output = sal.CampsiteAvailability(fakeCampground, fakeFrom, fakeTo);

            Assert.IsFalse(output.Count < 1);
        }