public void SearchForReservationTest() { string park = "Acadia"; string campground = "Blackwoods"; DateTime arrivalDate = DateTime.MinValue; DateTime departureDate = DateTime.MinValue; List <Campsite> test = new List <Campsite>(); ReservationSqlDAL reservationSqlDAL = new ReservationSqlDAL(); test = reservationSqlDAL.SearchForReservation(park, campground, arrivalDate, departureDate); Assert.IsNotNull(test); }
public void SearchCampgroundReservations(string park, string campground) { List <Campsite> avaiablereservations = new List <Campsite>(); bool validInput = false; DateTime arrivalDate = DateTime.MinValue; DateTime departureDate = DateTime.MinValue; bool SearchReservations = true; do { do { Console.Write("What is the arrival date? (mm/dd/yyyy): "); string input = Console.ReadLine(); try { arrivalDate = DateTime.Parse(input); validInput = true; } catch { Console.WriteLine("Invalid Input (mm/dd/yyyy): "); } } while (validInput == false); validInput = false; do { Console.Write("What is the departure date? (mm/dd/yyyy): "); string input = Console.ReadLine(); try { departureDate = DateTime.Parse(input); validInput = true; } catch { Console.WriteLine("Invalid Input (mm/dd/yyyy): "); } } while (validInput == false); ReservationSqlDAL reservationSqlDAL = new ReservationSqlDAL(); avaiablereservations = reservationSqlDAL.SearchForReservation(park, campground, arrivalDate, departureDate); if (avaiablereservations.Count == 0) { Console.WriteLine("No available sites\n"); validInput = false; do { try { Console.Write("Would you like to enter another date (Y/N): "); char anotherSearch; anotherSearch = Convert.ToChar(Console.ReadLine()); if (char.ToUpper(anotherSearch) == 'Y') { validInput = true; SearchReservations = true; } else if (char.ToUpper(anotherSearch) == 'N') { validInput = true; SearchReservations = false; return; } } catch { Console.WriteLine("\nPlease Enter (Y/N)"); } } while (validInput == false); } else { SearchReservations = false; } } while (SearchReservations == true); Console.WriteLine("\nResults Matching Your Search Criteria"); Console.WriteLine("Site No.".PadRight(11) + "Max Occup.".PadRight(11) + "Accessible".PadRight(13) + "Max RV Length".PadRight(15) + "Utility".PadRight(9) + "Cost"); foreach (Campsite campsite in avaiablereservations) { TimeSpan difference = departureDate - arrivalDate; Console.WriteLine( Convert.ToString(campsite.SiteNumber).PadRight(11) + Convert.ToString(campsite.MaxOccupancy).PadRight(11) + Convert.ToString(campsite.Accessible).PadRight(13) + Convert.ToString(campsite.MaxRvLength).PadRight(15) + Convert.ToString(campsite.Utilities).PadRight(9) + (campsite.DailyFee * (difference.Days + 1)).ToString("C2") ); } validInput = false; Campsite selectedCampsite = new Campsite(); Console.WriteLine(""); do { int userinput = 0; try { Console.Write("Which site should be reserved (enter 0 to cancel): "); userinput = int.Parse(Console.ReadLine()); if (userinput == 0) { return; } foreach (Campsite campsite in avaiablereservations) { if (campsite.SiteNumber == userinput) { validInput = true; selectedCampsite = campsite; } } if (validInput == false) { Console.WriteLine("Invalid Site Number\n"); } } catch (FormatException e) { Console.WriteLine("Invalid Input\n"); } } while (validInput == false); Console.Write("What name should the reservation be made under): "); string name = Console.ReadLine(); MakeNewReservation(name, selectedCampsite.SiteId, arrivalDate, departureDate); Console.WriteLine(""); }