Esempio n. 1
0
        private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) //Změna zvoleného data v date pickeru
        {
            MeetingsListView.Items.Clear();
            if ((MeetingCentreComboBox.SelectedItem != null) && (MeetingRoomComboBox.SelectedItem != null) && (DatePicker.SelectedDate != null))
            {
                Centre         centre          = MeetingCentreComboBox.SelectedItem as Centre;
                Room           room            = MeetingRoomComboBox.SelectedItem as Room;
                DateTime       date            = DatePicker.SelectedDate.Value.Date;
                List <Meeting> meetings        = room.HasMeetings(date);
                List <Meeting> sorted_meetings = meetings.OrderBy(o => o.DateAndTimeFrom).ToList();

                foreach (Meeting meeting in sorted_meetings)
                {
                    MeetingsListView.Items.Add(meeting);
                }
            }
        }
Esempio n. 2
0
 private void Button_Click(object sender, RoutedEventArgs e) //Kliknutí na button pro přidání nového prvku
 {
     try
     {
         if (Assistant.IsCodeUnique(TextBoxCode.Text)) // Zjištění, zda je zadaný code unikátní
         {
             // Rozhodnutí, zda přidáváme centre nebo room
             if (choice == "centre")
             {
                 // Přidání nové instance meeting centre
                 Centre meetingCentre = new Centre(TextBoxName.Text, TextBoxDescription.Text, TextBoxCode.Text);
                 // Přidání instance do listu center
                 meetingCentres.Add(meetingCentre);
                 dataChanged = true; //Změna parametru změny dat
             }
             else if (choice == "room")
             {
                 // Parsování kapacity
                 int capacity = 0;
                 if (!Int32.TryParse(TextBoxCapacity.Text, out capacity))
                 {
                     throw new Exception("Nelze převést na integer.");
                 }
                 Centre selectedCentre = ComboBoxMeetingCentre.SelectedItem as Centre;
                 // Získání stavu checkboxu pro video
                 bool video = (CheckBoxVideoConference.IsChecked.HasValue && CheckBoxVideoConference.IsChecked.Value == true);
                 // Přidání nové instance meeting room
                 Room meetingRoom = new Room(TextBoxName.Text, TextBoxDescription.Text, TextBoxCode.Text, capacity, video, selectedCentre);
                 // Přidání instance do listu rooms
                 meetingRooms.Add(meetingRoom);
                 selectedCentre.AddRoom(meetingRoom);
                 dataChanged = true; //Změna parametru změny dat
             }
         }
         else
         {
             throw new Exception("Kód není unikátní."); //Výjimka, pokud kód není unikátní
         }
         this.Close();                                  //Zavření okna
     }
     catch (Exception ex)                               // Odchycení výjimky a oznámení uživateli
     {
         MessageBox.Show(ex.Message);
     }
 }
Esempio n. 3
0
        private void MeetingCentresListView_SelectionChanged(object sender, SelectionChangedEventArgs e) // Změna vybraného prvku v listview pro centra
        {
            Centre selected_centre = MeetingCentresListView.SelectedItem as Centre;                      //Uložení vybraného itemu

            if (selected_centre != null)                                                                 // Naplnění daty pokud je vybraný item
            {
                LabelMeetingCentreName.Content        = selected_centre.Name;
                LabelMeetingCentreDescription.Content = selected_centre.Description;
                LabelMeetingCentreCode.Text           = selected_centre.Code;

                MeetingRoomsListView.Items.Clear(); //Vyčistění listview pro rooms
                List <Room> rooms = selected_centre.HasRooms();
                foreach (Room room in rooms)        // Vypsání všech souvisejících rooms do listview
                {
                    MeetingRoomsListView.Items.Add(room);
                }
            }
        }
Esempio n. 4
0
 private void ButtonDeleteMeetingCentre_Click(object sender, RoutedEventArgs e) //Odstranění meeting centre
 {
     if (MeetingCentresListView.SelectedItem != null)
     {
         Centre           selectedCentre = MeetingCentresListView.SelectedItem as Centre;
         MessageBoxResult result         = MessageBox.Show("Pokud má meeting centre přiřazeny meeting rooms, budou také smazány. Přejete si pokračovat?", "Remove", MessageBoxButton.YesNo);
         if (result == MessageBoxResult.Yes)
         {
             List <Room> rooms = selectedCentre.HasRooms();
             foreach (Room room in rooms)
             {
                 meetingRooms.Remove(room);         //Odstranění meeting room
             }
             meetingCentres.Remove(selectedCentre); //Odstranění meeting centre
             dataChanged = true;                    // Změna parametru pro dotaz na uložení změn
         }
         this.Window_Activated(null, null);         // Překreslení listviews
     }
 }
Esempio n. 5
0
 private void ButtonDeleteMeetingRoom_Click(object sender, RoutedEventArgs e) //Odstranění meeting room
 {
     if (MeetingRoomsListView.SelectedItem != null)
     {
         Room             selectedRoom = MeetingRoomsListView.SelectedItem as Room;
         Centre           roomsCentre  = selectedRoom.MeetingCentre;
         MessageBoxResult result       = MessageBox.Show("Opravdu si přejdete smazat zvolenou meeting room?", "Remove", MessageBoxButton.YesNo);
         if (result == MessageBoxResult.Yes)
         {
             List <Meeting> room_meetings = selectedRoom.HasMeetings();
             foreach (Meeting meeting in room_meetings)
             {
                 meetings.Remove(meeting);
             }
             roomsCentre.RemoveRoom(selectedRoom);
             meetingRooms.Remove(selectedRoom);
             dataChanged = true;
         }
     }
     this.Window_Activated(null, null); // Překreslení listviews
 }
Esempio n. 6
0
        private void LoadSavedData()                                                          //Metoda pro načtení uložených dat
        {
            string path      = AppDomain.CurrentDomain.BaseDirectory + "export_centres.json"; //Cesta k souboru s centry
            string json_data = File.ReadAllText(path);                                        // Načtení textu ze souboru
            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();                 //Inicializace JSSerializeru
            List <Centre>        importCentres  = new List <Centre>();                        //Inicializace listu pro importovaná centra

            importCentres = jsonSerializer.Deserialize <List <Centre> >(json_data);           //Deserializace do listu pro importovaná centra
            foreach (Centre centre in importCentres)                                          // Pro každé centrum v listu pro importovaná centra se provede řádné volání konstruktoru a přidání do listu center
            {
                Centre meetingCentre = new Centre(centre.Name, centre.Description, centre.Code);
                meetingCentres.Add(meetingCentre);
            }
            path      = AppDomain.CurrentDomain.BaseDirectory + "export_rooms.json"; //Cesta k souboru s rooms
            json_data = File.ReadAllText(path);                                      // Načtení textu ze souboru
            List <Room> importRooms = new List <Room>();                             //Inicializace listu pro importované rooms

            importRooms = jsonSerializer.Deserialize <List <Room> >(json_data);      //Deserializace do listu pro importované rooms
            foreach (Room room in importRooms)                                       // Pro každou room v listu pro importované rooms se provede řádné volání konstruktoru a přidání do listu rooms
            {
                Room meetingRoom = new Room(room.Name, room.Description, room.Code, room.Capacity, room.VideoConference, room.MeetingCentre as Centre);
                meetingRooms.Add(meetingRoom);
            }
            Assistant.AssignCentresToRooms(); //Metoda pro přiřazení rooms k centrům (získání vazby)
            if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "export_meetingXML.xml"))
            {
                List <Meeting> imported_meetings = new List <Meeting>();
                System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(List <Meeting>));
                using (var sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "export_meetingXML.xml"))
                {
                    imported_meetings = (List <Meeting>)reader.Deserialize(sr);
                }
                foreach (Meeting meeting in imported_meetings)
                {
                    meetings.Add(meeting);
                }
                Assistant.AssignRoomsToMeetings(); //Metoda pro přiřazení meetingů k roomům (získání vazby)
            }
        }
Esempio n. 7
0
        private void Import(object sender, RoutedEventArgs e) //Metoda pro import dat z poskytnutého .csv
        {
            try
            {
                Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog(); //Inicializace openfile dialogu
                dialog.DefaultExt = ".csv";                                                   // Výchozí formát v dialogu
                dialog.Filter     = "Comma Separated Values (.csv)|*.csv";                    // Nastavení filtru v dialogu
                Nullable <bool> result = dialog.ShowDialog();                                 //Uložení výsledku dialogu
                if (result == true)
                {
                    string       path = dialog.FileName;              //Cesta k souboru
                    StreamReader sr   = new StreamReader(path);       //Inicializace streamreaderu
                    dataChanged = true;                               //Změna parametru pro změnu dat
                    bool   meeting_centres = false;                   //Pomocné proměnné pro import
                    bool   meeting_rooms   = false;
                    string current_line;                              //Indikuje aktuální line streamreaderu
                    while ((current_line = sr.ReadLine()) != null)    // čti dokud nenačteš null
                    {
                        if (current_line.Contains("MEETING_CENTRES")) // Pokud se v aktuální řádce vyskutuje daný text, změní se pomocné proměnné
                        {
                            meeting_centres = true;
                            meeting_rooms   = false;
                        }
                        else if (current_line.Contains("MEETING_ROOMS")) // Pokud se v aktuální řádce vyskutuje daný text, změní se pomocné proměnné
                        {
                            meeting_rooms   = true;
                            meeting_centres = false;
                        }
                        else // Ostatní řádky
                        {
                            string[] values = current_line.Split(','); // Rozdělení řetězce podle ','
                            if (meeting_centres == true && meeting_rooms == false)                  // Pokud pomocné proměnné splňují podmínky pro čtení center vytvoří se nové centrum
                            {
                                Centre meetingCentre = new Centre(values[0], values[2], values[1]); // Volání konstruktoru centra
                                meetingCentres.Add(meetingCentre);                                  // Přidání do listu center
                            }
                            else if (meeting_rooms == true && meeting_centres == false)             // Pokud pomocné proměnné splňují podmínky pro čtení room vytvoří se nová room
                            {
                                int capacity = 0;
                                if (!Int32.TryParse(values[3], out capacity)) // Parsování na integer
                                {
                                    throw new Exception("Nelze převést na integer.");
                                }
                                bool video = false;
                                if (values[4] == "YES") //Získání stavu videa
                                {
                                    video = true;
                                }
                                if (values[4] == "NO")
                                {
                                    video = false;
                                }

                                Centre inMeetingCentre = null;

                                foreach (Centre mc in meetingCentres) //Získání meeting centra, ke kterému room patří
                                {
                                    if (mc.Code == values[5])
                                    {
                                        inMeetingCentre = mc;
                                    }
                                }
                                Room meetingRoom = new Room(values[0], values[2], values[1], capacity, video, inMeetingCentre); // Volání konstruktoru pro room
                                meetingRooms.Add(meetingRoom);                                                                  // Přidání do listu rooms
                            }
                        }
                    }
                    Assistant.AssignCentresToRooms();
                }
                MessageBox.Show("Data naimportována."); //Oznámení uživateli o úspěšném importu
                this.Window_Activated(null, null);      // Aktualizace listviews
            }
            catch (Exception ex)                        //Odchycení výjimky
            {
                MessageBox.Show(ex.Message + " Doposud naimportovaná data budou ponechány v aplikaci.");
            }
        }
Esempio n. 8
0
 public Room(string name, string description, string code, int capacity, Boolean videoConference, Centre meetingCentre) : base(name, description, code) //Konstruktor
 {
     Capacity        = capacity;
     VideoConference = videoConference;
     MeetingCentre   = meetingCentre;
 }