private void editServiceButton_Click(object sender, RoutedEventArgs e)
        {
            Service         service    = new Service();
            PersonalService pr_service = new PersonalService();
            GroupService    gr_service = new GroupService();

            int row = serviceDataGrid.SelectedIndex;
            int id  = Convert.ToInt32((serviceDataGrid.Columns[0].GetCellContent(serviceDataGrid.Items[row]) as TextBlock).Text);

            int group_id    = 0;
            int personal_id = 0;

            addServiceWindow addServiceWindow;

            try
            {
                using (var Db = new DatabaseContext())
                {
                    service = Db.Service.FirstOrDefault(c => c.id == id);
                    try { group_id = Db.GroupService.Find(service.id).service_id; } catch { group_id = 0; }

                    try { personal_id = Db.PersonalService.Find(service.id).service_id; } catch { personal_id = 0; }

                    if (group_id == 0)
                    {
                        pr_service = Db.PersonalService.FirstOrDefault(s => s.service_id == id);

                        addServiceWindow = new addServiceWindow(service, pr_service);
                        addServiceWindow.Show();
                    }
                    if (personal_id == 0)
                    {
                        gr_service = Db.GroupService.FirstOrDefault(s => s.service_id == id);

                        addServiceWindow = new addServiceWindow(service, gr_service);
                        addServiceWindow.Show();
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Возможно, были введены некорректные данные! Пожалуйста, попробуйте ещё раз.", "Ошибка ввода данных", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        public addServiceWindow(Service service, PersonalService pers_service)
        {
            InitializeComponent();

            titleTextBox.Text       = service.title;
            descriptionTextBox.Text = service.description;
            priceTextBox.Text       = service.price.ToString();

            typeServiceComboBox.SelectedIndex = 1;

            // roomNumLabel.Width = 0;
            //  roomNumTextBox.Width = 0;

            additionalPaymentTextBox.Text = pers_service.additional_payment.ToString();

            isAdd        = false;
            service_g    = service;
            pr_service_g = pers_service;
            this.Title   = "Редактирование услуги";

            MessageBox.Show(service_g.title);
        }
        public addServiceWindow(Service service, PersonalService pers_service)
        {
            InitializeComponent();

            titleTextBox.Text = service.title;
            descriptionTextBox.Text = service.description;
            priceTextBox.Text = service.price.ToString();

            typeServiceComboBox.SelectedIndex = 1;

           // roomNumLabel.Width = 0;
          //  roomNumTextBox.Width = 0;

            additionalPaymentTextBox.Text = pers_service.additional_payment.ToString();

            isAdd = false;
            service_g = service;
            pr_service_g = pers_service;
            this.Title = "Редактирование услуги";

            MessageBox.Show(service_g.title);
        }
        private void saveButton_Click(object sender, RoutedEventArgs e)
        {
            if (isAdd == true)
            {
                Service service = new Service();

                if (typeServiceComboBox.SelectedIndex.Equals(0))
                {
                    GroupService groupService = new GroupService();


                    if (AddDefend.AddGroupService(titleTextBox.Text, priceTextBox.Text, roomNumTextBox.Text) == true)
                    {
                        service.title         = titleTextBox.Text;
                        service.description   = descriptionTextBox.Text;
                        service.price         = Convert.ToDouble(priceTextBox.Text);
                        groupService.room_num = Convert.ToInt32(roomNumTextBox.Text);
                        try
                        {
                            using (var Db = new DatabaseContext())
                            {
                                groupService.service_id = service.id;

                                Db.Service.Add(service);
                                Db.GroupService.Add(groupService);
                                Db.SaveChanges();
                            }

                            MessageBox.Show("Данные об услуге добавлены успешно!", "Добавление данных", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка ввода", MessageBoxButton.OK, MessageBoxImage.Error);

                        addButton_Click(sender, e);
                    }
                }
                else
                {
                    PersonalService personalService = new PersonalService();


                    if (AddDefend.AddPersonalServiceDefend(titleTextBox.Text, priceTextBox.Text, additionalPaymentTextBox.Text) == true)
                    {
                        service.title       = titleTextBox.Text;
                        service.description = descriptionTextBox.Text;
                        service.price       = Convert.ToDouble(priceTextBox.Text);
                        personalService.additional_payment = Convert.ToDouble(additionalPaymentTextBox.Text);

                        try
                        {
                            using (var Db = new DatabaseContext())
                            {
                                personalService.service_id = service.id;

                                Db.Service.Add(service);
                                Db.PersonalService.Add(personalService);
                                Db.SaveChanges();
                            }

                            MessageBox.Show("Данные об услуге добавлены успешно!", "Добавление данных", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка ввода", MessageBoxButton.OK, MessageBoxImage.Error);

                        addButton_Click(sender, e);
                    }
                }
            }
            else
            {
                if (gr_service_g == null)
                {
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            Db.Service.Find(service_g.id).title       = titleTextBox.Text;
                            Db.Service.Find(service_g.id).description = descriptionTextBox.Text;

                            if (AddDefend.AddPersonalServiceDefend(titleTextBox.Text, priceTextBox.Text, additionalPaymentTextBox.Text) == true)
                            {
                                Db.Service.Find(service_g.id).price = Convert.ToDouble(priceTextBox.Text);
                                Db.PersonalService.Find(service_g.id).additional_payment = Convert.ToDouble(additionalPaymentTextBox.Text);

                                Db.SaveChanges();

                                MessageBox.Show("Данные об услуге изменены успешно!", "", MessageBoxButton.OK, MessageBoxImage.Information);
                            }
                            else
                            {
                                MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else
                {
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            Db.Service.Find(service_g.id).title       = titleTextBox.Text;
                            Db.Service.Find(service_g.id).description = descriptionTextBox.Text;

                            if (AddDefend.AddGroupService(titleTextBox.Text, priceTextBox.Text, roomNumTextBox.Text) == true)
                            {
                                Db.Service.Find(service_g.id).price         = Convert.ToDouble(priceTextBox.Text);
                                Db.GroupService.Find(service_g.id).room_num = Convert.ToInt32(roomNumTextBox.Text);

                                Db.SaveChanges();
                                MessageBox.Show("Данные об услуге изменены успешно!", "", MessageBoxButton.OK, MessageBoxImage.Information);
                            }
                            else
                            {
                                MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }
        }
        private void saveButton_Click(object sender, RoutedEventArgs e)
        {
            if (isAdd == true)
            {
                Service service = new Service();

                if (typeServiceComboBox.SelectedIndex.Equals(0))
                {
                    GroupService groupService = new GroupService();


                    if (AddDefend.AddGroupService(titleTextBox.Text, priceTextBox.Text, roomNumTextBox.Text) == true)
                    {
                        service.title = titleTextBox.Text;
                        service.description = descriptionTextBox.Text;
                        service.price = Convert.ToDouble(priceTextBox.Text);
                        groupService.room_num = Convert.ToInt32(roomNumTextBox.Text);
                        try
                        {
                            using (var Db = new DatabaseContext())
                            {
                                groupService.service_id = service.id;

                                Db.Service.Add(service);
                                Db.GroupService.Add(groupService);
                                Db.SaveChanges();
                            }

                            MessageBox.Show("Данные об услуге добавлены успешно!", "Добавление данных", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка ввода", MessageBoxButton.OK, MessageBoxImage.Error);

                        addButton_Click(sender, e);
                    }

                }
                else
                {
                    PersonalService personalService = new PersonalService();


                    if (AddDefend.AddPersonalServiceDefend(titleTextBox.Text, priceTextBox.Text, additionalPaymentTextBox.Text) == true)
                    {
                        service.title = titleTextBox.Text;
                        service.description = descriptionTextBox.Text;
                        service.price = Convert.ToDouble(priceTextBox.Text);
                        personalService.additional_payment = Convert.ToDouble(additionalPaymentTextBox.Text);

                        try
                        {
                            using (var Db = new DatabaseContext())
                            {
                                personalService.service_id = service.id;

                                Db.Service.Add(service);
                                Db.PersonalService.Add(personalService);
                                Db.SaveChanges();
                            }

                            MessageBox.Show("Данные об услуге добавлены успешно!", "Добавление данных", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка ввода", MessageBoxButton.OK, MessageBoxImage.Error);

                        addButton_Click(sender, e);
                    }
                }
            }
            else
            {
                if (gr_service_g == null)
                {
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            Db.Service.Find(service_g.id).title = titleTextBox.Text;
                            Db.Service.Find(service_g.id).description = descriptionTextBox.Text;

                            if (AddDefend.AddPersonalServiceDefend(titleTextBox.Text, priceTextBox.Text, additionalPaymentTextBox.Text) == true)
                            {
                                Db.Service.Find(service_g.id).price = Convert.ToDouble(priceTextBox.Text);
                                Db.PersonalService.Find(service_g.id).additional_payment = Convert.ToDouble(additionalPaymentTextBox.Text);

                                Db.SaveChanges();

                                MessageBox.Show("Данные об услуге изменены успешно!", "", MessageBoxButton.OK, MessageBoxImage.Information);

                            }
                            else
                            {
                                MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }

                        
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else
                {
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            Db.Service.Find(service_g.id).title = titleTextBox.Text;
                            Db.Service.Find(service_g.id).description = descriptionTextBox.Text;

                            if (AddDefend.AddGroupService(titleTextBox.Text, priceTextBox.Text, roomNumTextBox.Text) == true)
                            {
                                Db.Service.Find(service_g.id).price = Convert.ToDouble(priceTextBox.Text);
                                Db.GroupService.Find(service_g.id).room_num = Convert.ToInt32(roomNumTextBox.Text);

                                Db.SaveChanges();
                                MessageBox.Show("Данные об услуге изменены успешно!", "", MessageBoxButton.OK, MessageBoxImage.Information);

                            }
                            else
                            {
                                MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }
                        
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }      
        }