Exemplo n.º 1
0
        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!");
            }
        }
Exemplo n.º 2
0
        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");
            }
        }
Exemplo n.º 3
0
        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");
            }
        }
Exemplo n.º 4
0
        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");
            }
        }
Exemplo n.º 5
0
        public void HelloLabel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            User user = ((LoggedinNavigationCanvas)currentNavigationCanvas).GetActiveUser();

            CurrentCanvas.Hide();
            InitializeBookingsListShowCanvas(DataModels.GetInstance().GetUserBookings(user));
        }
Exemplo n.º 6
0
        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;
            }
        }
Exemplo n.º 7
0
 private void Rooms_Button_Click(object sender, RoutedEventArgs e)
 {
     if (currentCanvas != null)
     {
         currentCanvas.Hide();
     }
     InitializeRoomsCanvas(DataModels.GetInstance().GetAllRooms());
 }
Exemplo n.º 8
0
        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;
        }
Exemplo n.º 9
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);
 }
Exemplo n.º 10
0
 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);
 }
Exemplo n.º 11
0
        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();
        }
Exemplo n.º 12
0
        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);
            }
        }
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 14
0
        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();
        }
Exemplo n.º 15
0
        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());
        }
Exemplo n.º 16
0
        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());
            }
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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");
            }
        }
Exemplo n.º 19
0
        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");
            }
        }
Exemplo n.º 20
0
        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");
            }
        }
Exemplo n.º 21
0
        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();
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
        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");
            }
        }
Exemplo n.º 24
0
        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);
                }
            }
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        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();
        }
Exemplo n.º 27
0
        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();
        }
Exemplo n.º 28
0
        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();
        }