public void GuestCountTest() { //arrange List <Person> guests = new List <Person>(); Person person = new Person(); person.Name = "John"; GuestDecorator guest = new GuestDecorator("ABC123456", 21); guest.SetComponent(person); guests.Add(guest); Client client = new Client(1, "Marry", "Edinburgh"); GuestDecorator guest2 = new GuestDecorator("XYZ987456", 25); guest.SetComponent(client); guests.Add(guest2); int expectedCount = 2; Booking booking = new Booking(1, DateTime.Today, DateTime.Today.Add(TimeSpan.FromDays(6)), client, guests, 2); BreakfastDecorator breakfastDecorator = new BreakfastDecorator(); breakfastDecorator.SetComponent(booking); // act int actualCount = breakfastDecorator.GuestCount(); //assert Assert.AreEqual(expectedCount, actualCount, 0, "GuestCount not working properly"); }
public void CalculateCost1() { //arrange List <Person> guests = new List <Person>(); Person person = new Person(); person.Name = "John"; GuestDecorator guest = new GuestDecorator("ABC123456", 21); guest.SetComponent(person); guests.Add(guest); Client client = new Client(1, "Marry", "Edinburgh"); GuestDecorator guest2 = new GuestDecorator("XYZ987456", 25); guest.SetComponent(client); guests.Add(guest2); double expectedAmount = 360; Booking booking = new Booking(1, DateTime.Today, DateTime.Today.Add(TimeSpan.FromDays(6)), client, guests, 2); //act double actualAmount = booking.CalculateCost(); //assert Assert.AreEqual(expectedAmount, actualAmount, 0, "CalculateCost method not working properly"); }
public void TotalPriceTest3() { //arrange List <Person> guests = new List <Person>(); Client client = new Client(1, "Marry", "Edinburgh"); GuestDecorator guest = new GuestDecorator("XYZ987456", 25); guest.SetComponent(client); guests.Add(guest); double expectedAmount = 580; Booking booking = new Booking(1, DateTime.Today, DateTime.Today.Add(TimeSpan.FromDays(4)), client, guests, 2); EveningMealDecorator eveningMeal = new EveningMealDecorator(); eveningMeal.SetComponent(booking); CarHireDecorator carHireDecorator = new CarHireDecorator(); carHireDecorator.StartDate = DateTime.Today; carHireDecorator.EndDate = DateTime.Today.Add(TimeSpan.FromDays(4)); carHireDecorator.SetComponent(eveningMeal); // act double actualAmount = carHireDecorator.TotalPriece(); //assert Assert.AreEqual(expectedAmount, actualAmount, 0, "TotalPrice method working properly"); }
string oldPassportNo; // used when updating guest's passport number public CustomerDetails() { InitializeComponent(); // below code retreives customer's details from database and displays it in the window List <Person> clientList = DataLayerFacade.GetCustomer(CustomerL.customerNumber); this.Topmost = true; Client client = (Client)clientList.ElementAt(0); textBoxName.Text = client.Name; textBoxAddress.Text = client.Address; textBoxPassNo.MaxLength = 10; textBoxAddress.MaxLength = 150; textBoxName.MaxLength = 50; lblCustNumb.Content = client.CustomerNumber; List <Person> guestDecorator = DataLayerFacade.GetGuestDecorator(CustomerL.customerNumber, 0); if (guestDecorator.Count == 0) { textBoxPassNo.Visibility = Visibility.Hidden; textBoxAge.Visibility = Visibility.Hidden; lblPassNo.Visibility = Visibility.Hidden; lblAge.Visibility = Visibility.Hidden; } else { // if the customer is also a guest, the guest's details are also displayed GuestDecorator guest = (GuestDecorator)guestDecorator.ElementAt(0); guest.SetComponent(client); textBoxPassNo.Text = guest.PassportNumber; oldPassportNo = guest.PassportNumber; textBoxAge.Text = guest.Age.ToString(); } }
public void TotalPriceTest2() { //arrange List <Person> guests = new List <Person>(); Person person = new Person(); person.Name = "John"; GuestDecorator guest1 = new GuestDecorator("ABC123456", 21); guest1.SetComponent(person); guests.Add(guest1); Client client = new Client(1, "Marry", "Edinburgh"); GuestDecorator guest = new GuestDecorator("XYZ987456", 25); guest.SetComponent(client); guests.Add(guest); double expectedAmount = 390; Booking booking = new Booking(1, DateTime.Today, DateTime.Today.Add(TimeSpan.FromDays(3)), client, guests, 2); EveningMealDecorator eveningMeal = new EveningMealDecorator(); eveningMeal.SetComponent(booking); // act double actualAmount = eveningMeal.TotalPriece(); //assert Assert.AreEqual(expectedAmount, actualAmount, 0, "TotalPrice method working properly"); }
// logic for selecting a guest from the guest list. Set the selected guest and enables edit and //delete buttons private void listBoxGuests_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (listBoxGuests.SelectedIndex == -1) { return; } foreach (var guest in booking.GuestList) { if ((string)listBoxGuests.SelectedItem == guest.Name) { selectedGuest = (GuestDecorator)guest; } } btnDelGuest.IsEnabled = true; btnAmendGuest.IsEnabled = true; }
// populates guest details if client is also a guest private void checkBoxGuest_Checked(object sender, RoutedEventArgs e) { txtBoxGuestName.Text = txtBoxCustName.Text; if (checkBoxExistCust.IsChecked == true) { // for an existing customer a check is done if he/she was also a guest so the // guest details can be used in a new booking var selectedCustomer = DataLayerFacade.GetOneCustomerDetails(txtBoxCustName.Text); var guestDetailsList = DataLayerFacade.GetGuestDecorator(selectedCustomer.Id, 0); if (guestDetailsList.Count != 0) { GuestDecorator guest = (GuestDecorator)guestDetailsList.ElementAt(0); txtBoxGuestAge.Text = guest.Age.ToString(); txtBoxGuestPasspNo.Text = guest.PassportNumber; } } }
// if a customer is also a guest it retreives a customer object wrapped in a guest decorator public static List <Person> GetGuestDecorator(int customerNmber, int bookingRef) { List <Person> guestList = new List <Person>(); List <GuestItem> guestItemList = DatabaseCalls.GetGuestsDetails(customerNmber, bookingRef); if (guestItemList.Count == 0) { return(guestList); } foreach (var item in guestItemList) { Person person = new Person { Name = item.Name }; GuestDecorator guest = new GuestDecorator(item.PassportNumber, item.Age); guest.SetComponent(person); guestList.Add(guest); } return(guestList); }
public void TotalPriceTest1() { //arrange List <Person> guests = new List <Person>(); Client client = new Client(1, "Marry", "Edinburgh"); GuestDecorator guest = new GuestDecorator("XYZ987456", 25); guest.SetComponent(client); guests.Add(guest); double expectedAmount = 595; Booking booking = new Booking(1, DateTime.Today, DateTime.Today.Add(TimeSpan.FromDays(7)), client, guests, 2); // act double actualAmount = booking.TotalPriece(); //assert Assert.AreEqual(expectedAmount, actualAmount, 0, "TotalPrice method working properly"); }
// retreives all information for a booking and reconstructs it into an object public static AbstractBooking RetreiveBooking(int bookingId) { Client customer = null; List <Person> guestList = new List <Person>(); int customerRef = DatabaseCalls.GetCustIdForBooking(bookingId); CustomerItem customerItem = DatabaseCalls.GetCustomersDetails(customerRef).ElementAt(0); BusinessFacadeSingleton businessFacade = BusinessFacadeSingleton.Instance(); customer = businessFacade.CreateClient(customerItem.Id, customerItem.Name, customerItem.Address); foreach (var guestItem in DatabaseCalls.GetGuestsDetails(0, bookingId)) { GuestDecorator guest = businessFacade.CreateGuest(guestItem.Name, guestItem.PassportNumber, guestItem.Age); if (DatabaseCalls.IsCustomer(guest.Name)) { guest.SetComponent(customer); } guestList.Add(guest); } BookingItem bookingItem = DatabaseCalls.GetBookingDetails(bookingId); CarHireItem carHireItem = DatabaseCalls.GetCarHireDetails(bookingId); bool carHire = false; string driver = ""; DateTime hireStart = DateTime.Today; DateTime hireEnd = DateTime.Today; if (carHireItem != null) { carHire = true; driver = carHireItem.Driver; hireStart = carHireItem.HireStart; hireEnd = carHireItem.HireEnd; } var booking = businessFacade.CreateBooking(bookingId, bookingItem.Arrival, bookingItem.Departure, customer, guestList, bookingItem.ChaletId, bookingItem.EveningMeal, bookingItem.Breakfast, carHire, hireStart, hireEnd, driver); return(booking); }
public void NightCountTest() { //arrange List <Person> guests = new List <Person>(); Client client = new Client(1, "Marry", "Edinburgh"); GuestDecorator guest = new GuestDecorator("XYZ987456", 25); guest.SetComponent(client); guests.Add(guest); int expectedCount = 6; Booking booking = new Booking(1, DateTime.Today, DateTime.Today.Add(TimeSpan.FromDays(6)), client, guests, 2); EveningMealDecorator eveningMeal = new EveningMealDecorator(); eveningMeal.SetComponent(booking); //act int actualCount = eveningMeal.NightCount(); //assert Assert.AreEqual(expectedCount, actualCount, 0, "NightCount method not working properly"); }
// savel all booking data in the database tables public static void SaveBooking(AbstractBooking booking, bool breakfast, bool eveningMeal) { DatabaseCalls.AddBooking(booking.BookingRefNo, booking.ArrivalDate, booking.DepartureDate, booking.ChaletId, breakfast, eveningMeal); DatabaseCalls.CreateCustomer(booking.Client.CustomerNumber, booking.Client.Name, booking.Client.Address); DatabaseCalls.LinkClientToBooking(booking.BookingRefNo, booking.Client.CustomerNumber); foreach (var guest in booking.GuestList) // each guest is saved separately in the database { GuestDecorator guestDec = (GuestDecorator)guest; DatabaseCalls.CreateGuest(guestDec.Name, guestDec.PassportNumber, guestDec.Age); DatabaseCalls.LinkGuestToBooking(booking.BookingRefNo, guestDec.PassportNumber); if (guestDec.Component != null) { DatabaseCalls.LinkCustomerGuest(booking.Client.CustomerNumber, guestDec.PassportNumber); } } if (booking.GetType() == typeof(CarHireDecorator)) { DatabaseCalls.AddCarHire(((CarHireDecorator)booking).Driver, booking.BookingRefNo, ((CarHireDecorator)booking).StartDate, ((CarHireDecorator)booking).EndDate); } }
// logic for add guest button. Adds a guest to guest list private void btnAddGuest_Click(object sender, RoutedEventArgs e) { try { if (txtBoxGuestName.Text.Equals(String.Empty) || txtBoxGuestAge.Text.Equals(String.Empty) || txtBoxGuestPasspNo.Text.Equals(String.Empty)) { MessageBox.Show("Please provide all guest's details"); return; } string guestName = txtBoxGuestName.Text; string passportNo = txtBoxGuestPasspNo.Text; int age; try { age = Convert.ToInt32(txtBoxGuestAge.Text); } catch (Exception) { MessageBox.Show("Please provide age up to 101 as a number."); return; } string address = txtBoxCustAddress.Text; var facade = BusinessFacadeSingleton.Instance(); GuestDecorator guest = null; // below code checks retreives details of an existing customer(s) if an existing customer // wished to make a new booking if (checkBoxAddAsGuest.IsChecked == true && checkBoxExistCust.IsChecked == false) { if (txtBoxCustName.Text == String.Empty || txtBoxCustAddress.Text == String.Empty) { MessageBox.Show("Please provide customer details."); return; } int customerNumber = DataLayerFacade.GetNextCustomerNumber(); client = facade.CreateClient(customerNumber, guestName, address); guest = facade.CreateClientGuest(client, passportNo, age); } else { guest = facade.CreateGuest(guestName, passportNo, age); if (client == null) { // checks if the existing customer was also a guest so the guest details can be used if (checkBoxExistCust.IsChecked == true) { var existingCustomerDetails = DataLayerFacade.GetOneCustomerDetails(txtBoxCustName.Text); existingClient = new Client(existingCustomerDetails.Id, existingCustomerDetails.Name, existingCustomerDetails.Address); if (existingClient == null) { MessageBox.Show("Please provide client's details."); return; } client = existingClient; } else { if (txtBoxCustName.Text == String.Empty || txtBoxCustAddress.Text == String.Empty) { MessageBox.Show("Please provide customer details."); return; } int customerNumber = DataLayerFacade.GetNextCustomerNumber(); string clientName = txtBoxCustName.Text; string clinetAddress = txtBoxCustAddress.Text; client = facade.CreateClient(customerNumber, clientName, clinetAddress); } } } guests.Add(guest); if (guests.Count == 6) { MessageBox.Show("You have reached the maxumum number of guests"); txtBoxGuestName.IsReadOnly = true; txtBoxGuestAge.IsReadOnly = true; txtBoxGuestPasspNo.IsReadOnly = true; } listBoxGuestList.Items.Add(guestName); comBoxDriver.Items.Add(guestName);// ads the name to a combo box so it can be selected as a driver txtBoxGuestName.Text = ""; txtBoxGuestPasspNo.Text = ""; txtBoxGuestAge.Text = ""; checkBoxAddAsGuest.IsChecked = false; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } }