private static void AddReviewConfirmButton_Click(object sender, RoutedEventArgs e) { DataModels database = DataModels.GetInstance(); Button addRoomButton = (Button)sender; List <object> objects = (List <object>)addRoomButton.Tag; Booking booking = (Booking)objects[0]; TextBox reviewTextBox = (TextBox)objects[1]; TextBox ratingTexyBox = (TextBox)objects[2]; if (!BackEndHelper.IsNumber(ratingTexyBox.Text)) { MessageBox.Show("Rating must be a number !"); return; } bool done = database.AddReview(new Review(reviewTextBox.Text, int.Parse(ratingTexyBox.Text), booking.number)); if (done) { MessageBox.Show("Review submitted"); } else { MessageBox.Show("Error!"); } }
private static void AddOfferConfirmButton_Click(object sender, RoutedEventArgs e) { DataModels database = DataModels.GetInstance(); Button button = (Button)sender; List <object> data = (List <object>)button.Tag; ComboBox websiteCombo = (ComboBox)data[0]; ComboBox HotelCombo = (ComboBox)data[1]; ComboBox RoomCombo = (ComboBox)data[2]; TextBox priceText = (TextBox)data[3]; Website website = (Website)websiteCombo.SelectedItem; Room room = (Room)RoomCombo.SelectedItem; int price = int.Parse(priceText.Text); bool done = database.AddOffer(new Offer(website, room, price)); if (done) { MessageBox.Show("Offer Added successfully !"); } else { MessageBox.Show("Couldn't add offer"); } }
private static void AddWebsiteConfirmButton_Click(object sender, RoutedEventArgs e) { Button button = (Button)sender; List <TextBox> data = (List <TextBox>)button.Tag; string websiteName = data[0].Text; string websiteRating = data[1].Text; if (!BackEndHelper.IsNumber(websiteRating)) { MessageBox.Show("Rating must be a number"); return; } int rating = int.Parse(websiteRating); DataModels database = DataModels.GetInstance(); Website website = new Website(websiteName, rating); bool done = database.AddWebsite(website); if (done) { MessageBox.Show("Website Added successfully !"); } else { MessageBox.Show("Couldn't add website"); } }
private static void UpdateWebsiteConfirmButton_Click(object sender, RoutedEventArgs e) { Button button = (Button)sender; List <object> data = (List <object>)button.Tag; Website website = (Website)data[0]; TextBox websiteRatingTextBox = (TextBox)data[1]; string websiteRating = websiteRatingTextBox.Text; if (!BackEndHelper.IsNumber(websiteRating)) { MessageBox.Show("Rating must be a number"); return; } int newRating = int.Parse(websiteRating); website.rating = newRating; DataModels database = DataModels.GetInstance(); bool done = database.UpdateWebsite(website); if (done) { MessageBox.Show("Website Updated successfully !"); } else { MessageBox.Show("Couldn't update website"); } }
public void HelloLabel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { User user = ((LoggedinNavigationCanvas)currentNavigationCanvas).GetActiveUser(); CurrentCanvas.Hide(); InitializeBookingsListShowCanvas(DataModels.GetInstance().GetUserBookings(user)); }
private static void AddRoomButton_Click(object sender, RoutedEventArgs e) { Button addRoomButton = (Button)sender; List <object> objects = (List <object>)addRoomButton.Tag; ComboBox hotelComboBox = (ComboBox)objects[0]; TextBox roomNumberTextBox = (TextBox)objects[1]; ComboBox roomTypeComboBox = (ComboBox)objects[2]; Button browseRoomPhotoButton = (Button)objects[3]; Window popup = (Window)objects[4]; DataModels database = DataModels.GetInstance(); if (hotelComboBox.SelectedItem == null) { MessageBox.Show("Please select a hotel"); return; } Hotel hotel = (Hotel)((ComboBoxItem)hotelComboBox.SelectedItem).Content; int roomNumber; if (!int.TryParse(roomNumberTextBox.Text, out roomNumber)) { MessageBox.Show("Please enter a valid room number"); return; } if (roomTypeComboBox.SelectedItem == null) { MessageBox.Show("Please select a room type"); return; } RoomType roomType = (RoomType)((ComboBoxItem)roomTypeComboBox.SelectedItem).Content; if ((string)browseRoomPhotoButton.Tag == "") { MessageBox.Show("Please select a photo path"); return; } CustomImage roomImage = new CustomImage((string)browseRoomPhotoButton.Tag); Room room = new Room(roomNumber, hotel, roomType, roomImage, new List <RoomView>()); if (database.AddRoom(room) == true) { MessageBox.Show("Added"); if (adminWindow.currentCanvas != null) { adminWindow.currentCanvas.Hide(); } adminWindow.InitializeRoomsCanvas(database.GetAllRooms()); popup.Close(); return; } else { MessageBox.Show("please enter a valid room number"); return; } }
private void Rooms_Button_Click(object sender, RoutedEventArgs e) { if (currentCanvas != null) { currentCanvas.Hide(); } InitializeRoomsCanvas(DataModels.GetInstance().GetAllRooms()); }
private static void HotelLicenceCombo_SelectionChanged(object sender, SelectionChangedEventArgs e) { DataModels database = DataModels.GetInstance(); ComboBox hotelLicenceCombo = (ComboBox)sender; ComboBox roomNumberCombo = (ComboBox)hotelLicenceCombo.Tag; roomNumberCombo.ItemsSource = database.GetHotelRooms(((Hotel)hotelLicenceCombo.SelectedItem).licenseNumber); roomNumberCombo.SelectedIndex = 0; }
public static Admin_WebsitesControlCanvas GetInstance(Canvas canvas, List <Website> websites) { if (admin_WebsitesControlCanvas == null) { admin_WebsitesControlCanvas = new Admin_WebsitesControlCanvas(canvas); } admin_WebsitesControlCanvas.websites = websites; admin_WebsitesControlCanvas.model = DataModels.GetInstance(); return(admin_WebsitesControlCanvas); }
public static AdminOffersControlCanvas GetInstance(Canvas canvas, List <Offer> offers) { if (adminOffersControlCanvas == null) { adminOffersControlCanvas = new AdminOffersControlCanvas(canvas); } adminOffersControlCanvas.offers = offers; adminOffersControlCanvas.model = DataModels.GetInstance(); return(adminOffersControlCanvas); }
public void SignupButtonUserData_Click(object sender, RoutedEventArgs args) { Front_End.SignupCanvas signupCanvas = Front_End.SignupCanvas.GetInstance(SignupCanvas); if (BackEndHelper.IsValidEmail(signupCanvas.GetEmail()) == false) { MessageBox.Show("Invalid Email"); return; } if (signupCanvas.GetPassword().Length < 8) { MessageBox.Show("Passowrd length must be more than 8 characters"); return; } if (signupCanvas.GetCreditCardSerial().Length > 20 || BackEndHelper.IsNumber(signupCanvas.GetCreditCardSerial()) == false) { MessageBox.Show("Invalid serial number"); return; } if (signupCanvas.GetCreditCardCVV().Length > 4 || signupCanvas.GetCreditCardCVV().Length < 3 || BackEndHelper.IsNumber(signupCanvas.GetCreditCardCVV()) == false) { MessageBox.Show("Invalid cvv"); return; } if (signupCanvas.GetExpirationDate() < DateTime.Today) { MessageBox.Show("Credit card expired"); return; } User user = new User ( signupCanvas.GetUserName(), signupCanvas.GetEmail(), signupCanvas.GetName(), null, new CreditCard (signupCanvas.GetCreditCardSerial(), int.Parse(signupCanvas.GetCreditCardCVV()), signupCanvas.GetExpirationDate() ) ); bool valid = DataModels.GetInstance().RegisterUser(user, signupCanvas.GetPassword()); if (valid == false) { MessageBox.Show("User name taken"); return; } Front_End.NavigationCanvas.GetInstance(NavigationCanvas).Hide(); InitializeLoggedinNavigationCanvas(user); ActiveUser = user; CurrentCanvas.Hide(); InitializeHomeCanvas(); }
private void DeleteButton_Click(object sender, RoutedEventArgs e) { DataModels model = DataModels.GetInstance(); Button button = (Button)sender; Website website = (Website)button.Tag; if (MessageBox.Show($"Are you sure to delete {website.name} ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { // ToDo: un comment this when function done //model.DeleteWebsite(website); } }
private void DeleteOfferButton_Click(object sender, RoutedEventArgs e) { DataModels model = DataModels.GetInstance(); Button button = (Button)sender; Offer offer = (Offer)button.Tag; if (MessageBox.Show($"Are you sure to delete Offer ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { // ToDo: un comment this when function done //model.DeleteOffer(offer); } }
private void Websites_Button_Click(object sender, RoutedEventArgs e) { if (currentCanvas != null) { currentCanvas.Hide(); } DataModels model = DataModels.GetInstance(); Admin_WebsitesControlCanvas websitesCanvas = Admin_WebsitesControlCanvas.GetInstance(WebsitesCanvas, model.GetAllWebsites()); websitesCanvas.SetCanvasCoord(TabsRectangle.Width, HeaderRectangle.Height); websitesCanvas.SetCanvasDimensions(Width - TabsRectangle.Width, Height - HeaderRectangle.Height); websitesCanvas.Show(); }
private void DeleteButton_Click(object sender, RoutedEventArgs e) { Button deleteButton = (Button)sender; DataModels database = DataModels.GetInstance(); // remove rroom //database.deleteRoom(); Admin_window adminWindow = FrontEndHelper.GetAdminWindow(); if (adminWindow.currentCanvas != null) { adminWindow.currentCanvas.Hide(); } adminWindow.InitializeRoomsCanvas(database.GetAllRooms()); }
private void DeleteButton_Click(object sender, RoutedEventArgs e) { Button deleteButton = (Button)sender; Hotel hotel = (Hotel)deleteButton.Tag; if (MessageBox.Show($"Are you sure to delete {hotel.name} ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { //Todo: delete from database Admin_window admin_Window = FrontEndHelper.GetAdminWindow(); if (admin_Window.currentCanvas != null) { admin_Window.currentCanvas.Hide(); } admin_Window.InitializeHotelsCanvas(DataModels.GetInstance().GetAllHotels()); } }
public void SearchButton_Click(object sender, RoutedEventArgs args) { Front_End.HomeCanvas homeCanvas = Front_End.HomeCanvas.GetInstance(HomeCanvas); if (homeCanvas.selectedLocations.Count == 0) { MessageBox.Show("You Must Choose a location !", "Error"); return; } List <Room> rooms = DataModels.GetInstance().GetRooms(homeCanvas.selectedLocations, homeCanvas.selectedType.maxGuests, homeCanvas.selectedDateRange.Start, homeCanvas.selectedDateRange.End); // TODO: Remove this for (int i = 0; i < 10; i++) { rooms.Add(rooms[0]); } CurrentCanvas.Hide(); InitializeRoomsListShowCanvas(rooms); }
private void AddFacilityPhoto_Click(object sender, RoutedEventArgs e) { Button addPhotoButton = (Button)sender; Hotel hotel = (Hotel)addPhotoButton.Tag; OpenFileDialog dlg = new OpenFileDialog { Filter = "JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif|PNG Files (*.png)|*.png", Title = "Select Hotel Facility Photo" }; dlg.ShowDialog(); if (dlg.FileNames.Length == 0) { MessageBox.Show("Please select photo"); return; } List <HotelFacility> facilities = new List <HotelFacility>(); foreach (string fileName in dlg.FileNames) { facilities.Add(new HotelFacility(Guid.NewGuid().ToString(), new CustomImage(fileName))); } if (DataModels.GetInstance().AddFacilities(hotel.licenseNumber, facilities) == true) { MessageBox.Show("Added"); Admin_window admin_Window = FrontEndHelper.GetAdminWindow(); if (admin_Window.currentCanvas != null) { admin_Window.currentCanvas.Hide(); } admin_Window.InitializeHotelsCanvas(DataModels.GetInstance().GetAllHotels()); } else { MessageBox.Show("Error"); } }
private void RefundButton_Click(object sender, RoutedEventArgs e) { DataModels database = DataModels.GetInstance(); Button button = (Button)sender; Booking booking = (Booking)button.Tag; User user = FrontEndHelper.GetMainWindow().ActiveUser; if (DateTime.Now > booking.startDate.Subtract(TimeSpan.FromDays(3))) { MessageBox.Show("This booking is not refundable"); return; } if (database.DeleteBooking(booking.number)) { MessageBox.Show("Refunded."); } else { MessageBox.Show("Error"); } }
private static void ConfirmReserveButton_Click(object sender, RoutedEventArgs e) { DataModels database = DataModels.GetInstance(); Button button = (Button)sender; List <Object> data = (List <Object>)button.Tag; Calendar datePicker = (Calendar)data[0]; TextBox numberofGuestTextBox = (TextBox)data[1]; RoomsListShowCanvas roomListShowCanvas = (RoomsListShowCanvas)data[2]; int index = (int)data[3]; DateTime startDate = datePicker.SelectedDates[0]; DateTime endDate = datePicker.SelectedDates[datePicker.SelectedDates.Count - 1]; if (!BackEndHelper.IsNumber(numberofGuestTextBox.Text)) { MessageBox.Show("Number of guests must be a number"); return; } int numberOfGuests = int.Parse(numberofGuestTextBox.Text); Room room = roomListShowCanvas.GetSelectedRoom(index); if (numberOfGuests > room.type.maxGuests) { MessageBox.Show("Number of Guests bigger than room capacity"); return; } Booking booking = new Booking(database.GetBookingId(), startDate, endDate, numberOfGuests, GetMainWindow().ActiveUser, roomListShowCanvas.GetSelectedMealPlan(index), room, new Review(database.GetBookingId()), roomListShowCanvas.GetSelectedWebsite(index)); if (database.AddBooking(booking)) { MessageBox.Show("You Booked the room !"); } else { MessageBox.Show("Error"); } }
public void LoginButtonUserData_Click(object sender, RoutedEventArgs args) { Front_End.LoginCanvas loginCanvas = Front_End.LoginCanvas.GetInstance(LoginCanvas); if (DataModels.GetInstance().isAdmin(loginCanvas.GetUserName(), loginCanvas.GetPassword())) { ShowAdminPanel(); return; } User user = DataModels.GetInstance().LogUser(loginCanvas.GetUserName(), loginCanvas.GetPassword()); if (user == null) { MessageBox.Show("Invalid data"); return; } Front_End.NavigationCanvas.GetInstance(NavigationCanvas).Hide(); InitializeLoggedinNavigationCanvas(user); ActiveUser = user; CurrentCanvas.Hide(); InitializeHomeCanvas(); }
private void UpdatePhotoButton_Click(object sender, RoutedEventArgs e) { Button updateButton = (Button)sender; Hotel hotel = (Hotel)updateButton.Tag; OpenFileDialog dlg = new OpenFileDialog { Filter = "JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif|PNG Files (*.png)|*.png", Title = "Select Hotel Photo" }; dlg.ShowDialog(); if (dlg.FileName == "") { MessageBox.Show("Please select photo"); return; } hotel.image = new CustomImage(dlg.FileName); DataModels.GetInstance().UpdateHotel(hotel); }
private static void UpdateOfferConfirmButton_Click(object sender, RoutedEventArgs e) { DataModels database = DataModels.GetInstance(); Button button = (Button)sender; List <object> data = (List <Object>)button.Tag; Offer offer = (Offer)data[0]; TextBox priceBox = (TextBox)data[1]; int price = int.Parse(priceBox.Text.ToString()); bool done = database.UpdateRoomPrice(offer.room, offer.website, price); if (done) { MessageBox.Show("Offer Updated successfully !"); } else { MessageBox.Show("Couldn't update offer"); } }
public override void Initialize() { selectedMealPlan = new List <MealPlan>(new MealPlan[rooms.Count]); selectedWebsitePrice = new List <Tuple <Website, int> >(new Tuple <Website, int> [rooms.Count]); int boxSpacing = 50; double cardWidth = canvas.Width - 0.2 * canvas.Width; double cardHeight = 0.7 * canvas.Height; canvas.Background = new SolidColorBrush(Color.FromRgb(239, 239, 239)); ScrollViewer roomScrollViewer = new ScrollViewer { Height = canvas.Height }; canvas.Children.Add(roomScrollViewer); StackPanel roomCardStackPanel = new StackPanel(); roomScrollViewer.Content = roomCardStackPanel; for (int i = 0; i < rooms.Count; i++) { Room room = rooms[i]; //creates room card Border cardBorder = new Border { BorderBrush = new SolidColorBrush(Color.FromRgb(0, 0, 0)), BorderThickness = new Thickness(3), Width = cardWidth, Margin = new Thickness(0.1 * canvas.Width, boxSpacing, 0.1 * canvas.Width, 0) }; Grid roomGrid = new Grid { Width = cardWidth, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(0.4 * cardWidth) }, new ColumnDefinition { Width = new GridLength(0.6 * cardWidth) } }, RowDefinitions = { new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto } } }; cardBorder.Child = roomGrid; roomCardStackPanel.Children.Add(cardBorder); //set card image Image roomImage = room.image.GetImage(); roomImage.MaxWidth = 0.35 * cardWidth; roomImage.MaxHeight = 0.85 * cardHeight; Grid.SetColumn(roomImage, 0); Grid.SetRow(roomImage, 0); roomGrid.Children.Add(roomImage); //set roomdatastackpanel StackPanel roomDataStackPanel = new StackPanel { Width = 0.6 * cardWidth, Height = 0.85 * cardHeight, }; Grid.SetColumn(roomDataStackPanel, 1); Grid.SetRow(roomDataStackPanel, 0); roomGrid.Children.Add(roomDataStackPanel); //set room type Label roomTypeLabel = new Label { Content = "Room Type: " + room.type.name, FontSize = 22, Margin = new Thickness(0, 0.2 * cardHeight, 0, 0) }; roomDataStackPanel.Children.Add(roomTypeLabel); //set hotel name Label roomHotelLabel = new Label { Content = "Hotel: " + room.hotel.name, FontSize = 22, Margin = new Thickness(0, 0.05 * cardHeight, 0, 0) }; roomDataStackPanel.Children.Add(roomHotelLabel); //set room price Label roomPriceLabel = new Label { Content = "Price: ", FontSize = 22, Margin = new Thickness(0, 0.05 * cardHeight, 0, 0) }; roomDataStackPanel.Children.Add(roomPriceLabel); //set view more button Grid grid = new Grid { ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(0.5 * roomDataStackPanel.Width) }, new ColumnDefinition { Width = new GridLength(0.5 * roomDataStackPanel.Width) } }, Margin = new Thickness(0, 0.05 * cardHeight, 0, 0) }; Label locationLabel = new Label { Content = "Loaction: " + room.hotel.location.city + ", " + room.hotel.location.country, FontSize = 22, }; Grid.SetColumn(locationLabel, 0); grid.Children.Add(locationLabel); Button viewMoreButton = FrontEndHelper.CreateButton(cardWidth * 0.1, cardHeight * 0.1, "Reserve"); Grid.SetColumn(viewMoreButton, 1); grid.Children.Add(viewMoreButton); roomDataStackPanel.Children.Add(grid); //creates view more expander Expander viewMoreExpander = new Expander { Width = canvas.Width, Margin = new Thickness(0, 0, 0, 0.05 * cardHeight), Header = "More Data" }; Grid.SetColumnSpan(viewMoreExpander, 2); Grid.SetRow(viewMoreExpander, 1); roomGrid.Children.Add(viewMoreExpander); //creates tabs TabControl MoreDetailsTabs = new TabControl(); viewMoreExpander.Content = MoreDetailsTabs; MoreDetailsTabs.Background = new SolidColorBrush(Color.FromRgb(239, 239, 239)); //creates meals tab TabItem MealsTab = new TabItem { Header = "Meals" }; StackPanel MealsPanel = new StackPanel(); MealsTab.Content = MealsPanel; MoreDetailsTabs.Items.Add(MealsTab); for (int j = 0; j < room.hotel.mealPlans.Count; j++) { MealPlan mealPlan = room.hotel.mealPlans[j]; RadioButton mealPlanRadioButton = new RadioButton { GroupName = "MealPlanRadioGroup " + i.ToString(), Content = mealPlan, FontSize = 22, Margin = new Thickness(0, 0.025 * cardHeight, 0, 0) }; mealPlanRadioButton.Checked += mealRadioButtonChecked; if (j == 0) { mealPlanRadioButton.IsChecked = true; } MealsPanel.Children.Add(mealPlanRadioButton); } //creates website and prices tab TabItem websitesTab = new TabItem { Header = "Websites" }; StackPanel websitesPanel = new StackPanel(); websitesTab.Content = websitesPanel; MoreDetailsTabs.Items.Add(websitesTab); List <Tuple <Website, int> > websitePrice = DataModels.GetInstance().GetWebsitePricesForRoom(room); for (int j = 0; j < websitePrice.Count; j++) { RadioButton websitePriceRadioButton = new RadioButton { GroupName = "WebsitePriceRadioGroup " + i.ToString(), DataContext = websitePrice[j], Content = websitePrice[j].Item1.name + " , " + websitePrice[j].Item2.ToString(), FontSize = 22, Margin = new Thickness(0, 0.025 * cardHeight, 0, 0) }; websitePriceRadioButton.Checked += webstiePriceRadioButtonChecked; if (j == 0) { websitePriceRadioButton.IsChecked = true; } websitesPanel.Children.Add(websitePriceRadioButton); } //creates room view tab TabItem roomViewsTab = new TabItem { Header = "Views" }; StackPanel roomViewsPanel = new StackPanel(); roomViewsTab.Content = roomViewsPanel; MoreDetailsTabs.Items.Add(roomViewsTab); foreach (RoomView view in room.views) { Label viewLabel = new Label { Content = view.view, FontSize = 22, Margin = new Thickness(0, 0.025 * cardHeight, 0, 0) }; roomViewsPanel.Children.Add(viewLabel); } //create room photos TabItem hotelPhotosTab = new TabItem { Header = "Photos" }; Canvas hotelPhotosCanvas = new Canvas { Width = cardWidth, Height = 300 }; hotelPhotosTab.Content = hotelPhotosCanvas; MoreDetailsTabs.Items.Add(hotelPhotosTab); List <CustomImage> images = new List <CustomImage>(); images.Add(room.hotel.image); foreach (HotelFacility facility in room.hotel.facilities) { images.Add(facility.image); } foreach (PlaceOfIntrest placeOfIntrest in room.hotel.location.placesOfIntrest) { images.Add(placeOfIntrest.image); } ImageAlbum hotelAlbum = new ImageAlbum(hotelPhotosCanvas, 25, 25, 250, 250, images); //creates room reviews TabItem roomReviewsTab = new TabItem { Header = "Room Reviews" }; StackPanel roomReviewsStackPanel = new StackPanel(); roomReviewsTab.Content = roomReviewsStackPanel; MoreDetailsTabs.Items.Add(roomReviewsTab); List <Booking> roomBookings = DataModels.GetInstance().GetRoomBookings(room); for (int j = 0; j < roomBookings.Count; j++) { Booking booking = roomBookings[j]; Border roomBookingCardBorder = new Border { Width = 0.8 * cardWidth, BorderBrush = new SolidColorBrush(Color.FromRgb(0, 0, 0)), BorderThickness = new Thickness(3), HorizontalAlignment = HorizontalAlignment.Left }; if (j == roomBookings.Count - 1) { roomBookingCardBorder.Margin = new Thickness(0.1 * cardWidth, 25, 0.1 * cardWidth, 25); } else { roomBookingCardBorder.Margin = new Thickness(0.1 * cardWidth, 25, 0.1 * cardWidth, 0); } StackPanel roomBookingCardPanel = new StackPanel(); roomBookingCardBorder.Child = roomBookingCardPanel; roomReviewsStackPanel.Children.Add(roomBookingCardBorder); Label userNameLabel = new Label { Content = "User Name : " + booking.bookingUser.username, FontSize = 22 }; roomBookingCardPanel.Children.Add(userNameLabel); Label ratingLabel = new Label { Content = "Rating : " + booking.bookingReview.rating, FontSize = 22 }; roomBookingCardPanel.Children.Add(ratingLabel); Label startDateLabel = new Label { Content = "From " + booking.startDate.ToShortDateString() + " To " + booking.endDate.ToShortDateString(), FontSize = 22 }; roomBookingCardPanel.Children.Add(startDateLabel); TextBlock description = new TextBlock { Width = 0.8 * cardWidth - 5, Text = "Description : " + booking.bookingReview.description, FontSize = 22, Margin = new Thickness(0, 0, 0, 10), TextWrapping = TextWrapping.WrapWithOverflow, Padding = new Thickness(5, 0, 0, 0) }; roomBookingCardPanel.Children.Add(description); } } }
public override void Initialize() { selectedLocations = new List <Location>(); selectedDateRange = null; selectedType = null; double itemsSpacing = 150; //set canvas background canvas.Background = new SolidColorBrush(Color.FromRgb(239, 239, 239)); //creates room type combobox ComboBox roomTypesComboBox = new ComboBox { Width = 200, Height = 30, }; List <RoomType> roomTypes = DataModels.GetInstance().GetAllRoomTypes(); roomTypesComboBox.ItemsSource = roomTypes; roomTypesComboBox.SelectionChanged += ComboBox_SelectionChanged; if (roomTypes.Count > 0) { roomTypesComboBox.SelectedIndex = 0; } Canvas.SetLeft(roomTypesComboBox, 3 * itemsSpacing + 500); Canvas.SetTop(roomTypesComboBox, canvas.Height / 4); canvas.Children.Add(roomTypesComboBox); //creates booking range calendar Calendar bookingCalendar = new Calendar { SelectionMode = CalendarSelectionMode.SingleRange }; selectedDateRange = new CalendarDateRange(DateTime.Today, DateTime.Today); bookingCalendar.SelectedDatesChanged += Calander_SelectedDatesChanged; Canvas.SetLeft(bookingCalendar, 2 * itemsSpacing + roomTypesComboBox.Width + 40); Canvas.SetTop(bookingCalendar, canvas.Height / 4); canvas.Children.Add(bookingCalendar); //creates locations check boxes Expander locationsExpander = new Expander { Width = 160, Height = 200, Header = "Locations" }; ScrollViewer locationsScrollViewer = new ScrollViewer(); StackPanel locationsStackPanel = new StackPanel(); locationsExpander.Content = locationsScrollViewer; locationsScrollViewer.Content = locationsStackPanel; List <Location> locations = DataModels.GetInstance().GetAllLocations(); foreach (Location location in locations) { CheckBox locationCheckBox = new CheckBox { Content = location, FontSize = 20 }; locationCheckBox.Checked += CheckBox_Checked; locationCheckBox.Unchecked += CheckBox_Unchecked; locationsStackPanel.Children.Add(locationCheckBox); } Canvas.SetLeft(locationsExpander, itemsSpacing); Canvas.SetTop(locationsExpander, canvas.Height / 4); canvas.Children.Add(locationsExpander); Button searchButton = FrontEndHelper.CreateButton(150, 60, "Search"); searchButton.Click += FrontEndHelper.GetMainWindow().SearchButton_Click; Canvas.SetLeft(searchButton, canvas.Width / 2 - 100); Canvas.SetBottom(searchButton, canvas.Height / 6); canvas.Children.Add(searchButton); }
public static void CreateAddRoomPopupWindow() { double windowWidth = 500; double itemsWidth = 150; Window popup = new Window { Width = windowWidth, Height = 500, WindowStartupLocation = WindowStartupLocation.CenterScreen, Title = "Add Room" }; StackPanel addDataStackPanel = new StackPanel { Width = windowWidth, Margin = new Thickness(20, 0.15 * popup.Height, 0, 0) }; popup.Content = addDataStackPanel; Grid addDataGrid = new Grid { Width = windowWidth, ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = GridLength.Auto } }, RowDefinitions = { new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto } } }; addDataStackPanel.Children.Add(addDataGrid); //add hotel licence number Label hotelLabel = new Label { Content = "Hotel : ", FontSize = 22 }; Grid.SetRow(hotelLabel, 0); Grid.SetColumn(hotelLabel, 0); addDataGrid.Children.Add(hotelLabel); ComboBox hotelComboBox = new ComboBox { FontSize = 22, Width = itemsWidth }; List <Hotel> hotels = DataModels.GetInstance().GetAllHotels(); foreach (Hotel hotel in hotels) { ComboBoxItem hotelItem = new ComboBoxItem { Content = hotel }; hotelComboBox.Items.Add(hotelItem); } if (hotelComboBox.Items.Count > 0) { hotelComboBox.SelectedIndex = 0; } Grid.SetRow(hotelComboBox, 0); Grid.SetColumn(hotelComboBox, 1); addDataGrid.Children.Add(hotelComboBox); //add room number Label roomNumberLabel = new Label { Content = "Room Number : ", FontSize = 22, Margin = new Thickness(0, 10, 0, 0) }; Grid.SetRow(roomNumberLabel, 1); Grid.SetColumn(roomNumberLabel, 0); addDataGrid.Children.Add(roomNumberLabel); TextBox roomNumberTextBox = new TextBox { FontSize = 22, Width = itemsWidth, HorizontalAlignment = HorizontalAlignment.Left, Margin = new Thickness(0, 10, 0, 0) }; Grid.SetRow(roomNumberTextBox, 1); Grid.SetColumn(roomNumberTextBox, 1); addDataGrid.Children.Add(roomNumberTextBox); //add room type Label roomTypeLabel = new Label { Content = "Room Type : ", FontSize = 22, Margin = new Thickness(0, 10, 0, 0) }; Grid.SetRow(roomTypeLabel, 2); Grid.SetColumn(roomTypeLabel, 0); addDataGrid.Children.Add(roomTypeLabel); ComboBox roomTypeComboBox = new ComboBox { Width = itemsWidth, FontSize = 22, Margin = new Thickness(0, 10, 0, 0), HorizontalAlignment = HorizontalAlignment.Center }; Grid.SetRow(roomTypeComboBox, 2); Grid.SetColumn(roomTypeComboBox, 1); addDataGrid.Children.Add(roomTypeComboBox); List <RoomType> roomTypes = DataModels.GetInstance().GetAllRoomTypes(); for (int j = 0; j < roomTypes.Count; j++) { RoomType roomType = roomTypes[j]; ComboBoxItem roomTypeItem = new ComboBoxItem { Content = roomType }; roomTypeComboBox.Items.Add(roomTypeItem); } if (roomTypeComboBox.Items.Count > 0) { roomTypeComboBox.SelectedIndex = 0; } //add room photo Label roomPhotoLabel = new Label { Content = "Room Photo : ", FontSize = 22, Margin = new Thickness(0, 10, 0, 0) }; Grid.SetRow(roomPhotoLabel, 3); Grid.SetColumn(roomPhotoLabel, 0); addDataGrid.Children.Add(roomPhotoLabel); Button browseRoomPhotoButton = CreateButton(itemsWidth, hotelLabel.Height, "Browse"); browseRoomPhotoButton.Margin = new Thickness(0, 10, 0, 0); browseRoomPhotoButton.Click += BrowseRoomPhotoButton_Click; browseRoomPhotoButton.Tag = ""; Grid.SetRow(browseRoomPhotoButton, 3); Grid.SetColumn(browseRoomPhotoButton, 1); addDataGrid.Children.Add(browseRoomPhotoButton); Button addRoomButton = CreateButton(100, 50, "Add"); addRoomButton.Margin = new Thickness(170, 30, 0, 0); addRoomButton.HorizontalAlignment = HorizontalAlignment.Left; addRoomButton.Click += AddRoomButton_Click; List <object> tags = new List <object>(); tags.Add(hotelComboBox); tags.Add(roomNumberTextBox); tags.Add(roomTypeComboBox); tags.Add(browseRoomPhotoButton); tags.Add(popup); addRoomButton.Tag = tags; addDataStackPanel.Children.Add(addRoomButton); popup.ShowDialog(); }
public static void CreateReservePopupWindow(RoomsListShowCanvas roomListShowCanvas, int index) { DataModels database = DataModels.GetInstance(); Window popup = new Window { Width = 350, Height = 500, WindowStartupLocation = WindowStartupLocation.CenterScreen, Title = "Confirm Booking" }; Grid popupGrid = new Grid { Background = new SolidColorBrush(Color.FromRgb(255, 255, 255)) }; popup.Content = popupGrid; StackPanel reservePopupStackPanel = new StackPanel { Background = new SolidColorBrush(Color.FromRgb(255, 255, 255)), Margin = new Thickness(10, 10, 10, 10) }; popupGrid.Children.Add(reservePopupStackPanel); Grid numberofGuestsGrid = new Grid { ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = GridLength.Auto } } }; reservePopupStackPanel.Children.Add(numberofGuestsGrid); Label numberofGuestsLabel = new Label { Content = "Number of Guests : ", FontSize = 22 }; Grid.SetColumn(numberofGuestsLabel, 0); numberofGuestsGrid.Children.Add(numberofGuestsLabel); TextBox numberofGuestTextBox = new TextBox { Width = 50, FontSize = 22 }; Grid.SetColumn(numberofGuestTextBox, 1); numberofGuestsGrid.Children.Add(numberofGuestTextBox); Label mealLabel = new Label { Content = "Meal Plan : " + roomListShowCanvas.GetSelectedMealPlan(index).name, FontSize = 22, Margin = new Thickness(0, 10, 0, 0) }; reservePopupStackPanel.Children.Add(mealLabel); Label websiteLabel = new Label { Content = "Website : " + roomListShowCanvas.GetSelectedWebsite(index).name, FontSize = 22, Margin = new Thickness(0, 10, 0, 0) }; reservePopupStackPanel.Children.Add(websiteLabel); Label priceLabel = new Label { Content = "Price : ", FontSize = 22, Margin = new Thickness(0, 10, 0, 0) }; reservePopupStackPanel.Children.Add(priceLabel); Calendar datePicker = new Calendar { SelectionMode = CalendarSelectionMode.SingleRange, Margin = new Thickness(0, 10, 0, 0) }; datePicker.SelectedDate = DateTime.Now; datePicker.DisplayDateStart = DateTime.Today; List <Booking> bookings = database.GetRoomBookings(roomListShowCanvas.GetSelectedRoom(index)); foreach (Booking booking in bookings) { datePicker.BlackoutDates.Add(new CalendarDateRange(booking.startDate, booking.endDate)); } reservePopupStackPanel.Children.Add(datePicker); Button confirmReserveButton = FrontEndHelper.CreateButton(80, 40, "Confirm"); confirmReserveButton.Margin = new Thickness(0, 10, 0, 0); confirmReserveButton.Click += ConfirmReserveButton_Click; reservePopupStackPanel.Children.Add(confirmReserveButton); List <object> data = new List <object>(); data.Add(datePicker); data.Add(numberofGuestTextBox); data.Add(roomListShowCanvas); data.Add(index); confirmReserveButton.Tag = data; popup.Owner = GetMainWindow(); popup.ShowDialog(); }
public static void createAddOfferPopupWindow() { DataModels database = DataModels.GetInstance(); Window popup = new Window { Width = 330, Height = 400, WindowStartupLocation = WindowStartupLocation.CenterScreen, Title = "Add Offer" }; StackPanel stackPanel = new StackPanel { Background = new SolidColorBrush(Color.FromRgb(255, 255, 255)), Margin = new Thickness(10, popup.Height / 4, 10, 10) }; Grid popupGrid = new Grid { Background = new SolidColorBrush(Color.FromRgb(255, 255, 255)), ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = GridLength.Auto } }, RowDefinitions = { new RowDefinition { Height = GridLength.Auto }, // Website combo new RowDefinition { Height = GridLength.Auto }, // Hotel Combo new RowDefinition { Height = GridLength.Auto }, // Room # Combo new RowDefinition { Height = GridLength.Auto } // Price TextBox } }; popup.Content = stackPanel; stackPanel.Children.Add(popupGrid); // Label websiteLabel = new Label { Content = "Website: ", FontSize = 17 }; Grid.SetColumn(websiteLabel, 0); Grid.SetRow(websiteLabel, 0); popupGrid.Children.Add(websiteLabel); // Label hotelLicenceLabel = new Label { Content = "Hotel: ", FontSize = 17 }; Grid.SetColumn(hotelLicenceLabel, 0); Grid.SetRow(hotelLicenceLabel, 1); popupGrid.Children.Add(hotelLicenceLabel); // Label roomNumberLabel = new Label { Content = "Room number: ", FontSize = 17 }; Grid.SetColumn(roomNumberLabel, 0); Grid.SetRow(roomNumberLabel, 2); popupGrid.Children.Add(roomNumberLabel); // Label offerPriceLabel = new Label { Content = "Offer Price: ", FontSize = 17 }; Grid.SetColumn(offerPriceLabel, 0); Grid.SetRow(offerPriceLabel, 3); popupGrid.Children.Add(offerPriceLabel); // ComboBox websiteCombo = new ComboBox { Width = 150, Height = 30, FontSize = 15 }; Grid.SetColumn(websiteCombo, 1); Grid.SetRow(websiteCombo, 0); websiteCombo.ItemsSource = database.GetAllWebsites(); websiteCombo.SelectedIndex = 0; popupGrid.Children.Add(websiteCombo); // ComboBox hotelLicenceCombo = new ComboBox { Width = 150, Height = 30, FontSize = 15 }; Grid.SetColumn(hotelLicenceCombo, 1); Grid.SetRow(hotelLicenceCombo, 1); hotelLicenceCombo.ItemsSource = database.GetAllHotels(); hotelLicenceCombo.SelectedIndex = 0; hotelLicenceCombo.SelectionChanged += HotelLicenceCombo_SelectionChanged; popupGrid.Children.Add(hotelLicenceCombo); // ComboBox roomNumberCombo = new ComboBox { Width = 150, Height = 30, FontSize = 15 }; Grid.SetColumn(roomNumberCombo, 1); Grid.SetRow(roomNumberCombo, 2); roomNumberCombo.ItemsSource = database.GetHotelRooms(((Hotel)hotelLicenceCombo.SelectedItem).licenseNumber); roomNumberCombo.SelectedIndex = 0; popupGrid.Children.Add(roomNumberCombo); hotelLicenceCombo.Tag = roomNumberCombo; // TextBox offerPriceTextBox = new TextBox { Width = 150, Height = 20, FontSize = 15 }; Grid.SetColumn(offerPriceTextBox, 1); Grid.SetRow(offerPriceTextBox, 3); popupGrid.Children.Add(offerPriceTextBox); Button addOfferConfirmButton = FrontEndHelper.CreateButton(80, 40, "Add"); addOfferConfirmButton.Margin = new Thickness(0, 10, 0, 0); List <Object> data = new List <Object>(); data.Add(websiteCombo); data.Add(hotelLicenceCombo); data.Add(roomNumberCombo); data.Add(offerPriceTextBox); addOfferConfirmButton.Tag = data; addOfferConfirmButton.Click += AddOfferConfirmButton_Click;; stackPanel.Children.Add(addOfferConfirmButton); popup.Owner = GetAdminWindow(); popup.ShowDialog(); }