private void coachComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            double minSalary = 1378;

            minSalaryTextBox.Text = minSalary.ToString();

            double payment_sum = 0;

            double additionalPayment_sum = 0;

            double resultSalary = 0;

            try
            {
                using (var Db = new DatabaseContext())
                {
                    int i = Db.CoachesNames.FirstOrDefault(n => n.name == (string)coachComboBox.SelectedValue).id;

                    var result = Db.ViewContractWithAddPayment.Where(x => x.coach_id == i).Select(x => x).ToList();
                
                    contractDataGrid.ItemsSource = result;

                    var payment = Db.ViewContractWithAddPayment.Where(x => x.coach_id == i).Select(x => x.payment).ToList();                  

                    foreach (double p in payment)
                    {
                        payment_sum += p;
                    }

                    var additionalPayment = Db.ViewContractWithAddPayment.Where(j => j.coach_id == i && j.additional_payment != null).Select(j => j.additional_payment).ToList();

                    foreach (double r in additionalPayment)
                    {
                        additionalPayment_sum += r;
                    }

                    sumServicePaymentTextBox.Text = payment_sum.ToString()+"+"+ additionalPayment_sum.ToString();

                }

                resultSalary = Convert.ToDouble(minSalaryTextBox.Text) +payment_sum+additionalPayment_sum;

                salaryTextBox.Text = resultSalary.ToString();

                
            }
            catch (Exception)
            {
                MessageBox.Show("Тренер не найден!", "", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     try
     {
         using (var Db = new DatabaseContext())
         {
             loginComboBox.ItemsSource = Db.User.Select(u => u.login).ToList();
         }          
     }
     catch (Exception)
     {
         MessageBox.Show("Ошибка соединения с базой данных!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
   //  try
    // {
         using (var Db = new DatabaseContext())
         {
             abonementDataGrid.ItemsSource = Db.ViewAbonements.ToList();
         }
   //  }
  //   catch (Exception)
   //  {
       //  MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
   //  }
 }
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     try
     {
         using (var Db = new DatabaseContext())
         {
             postDataGrid.ItemsSource = Db.Post.ToList();
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
        private void coachComboBox_Loaded(object sender, RoutedEventArgs e)
        {

            try
            {
                using (var Db = new DatabaseContext())
                {
                    coachComboBox.ItemsSource = Db.CoachesNames.Select(i => i.name).ToList();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void RefreshPostDataGrid()
        {
            postDataGrid.Items.Refresh();

            try
            {
                using (var Db = new DatabaseContext())
                {
                    postDataGrid.ItemsSource = Db.Post.ToList();
                }

                postDataGrid.Items.Refresh();
            }
            catch (Exception)
            {
            }
        }
        private void coachComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                using (var Db = new DatabaseContext())
                {
                    int i= Db.CoachesNames.FirstOrDefault(n =>n.name == (string)coachComboBox.SelectedValue).id;

                    var result = Db.CoachesNames.Where(x => x.id == i).Select(x => x.title).ToList<string>();

                    foreach (string s in result)
                    {
                        postTextBox.Text = s;
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void RefreshContractDataGrid()
        {
            contractDataGrid.Items.Refresh();

            try
            {
                using (var Db = new DatabaseContext())
                {
                    int i = Db.CoachesNames.FirstOrDefault(n => n.name == (string)coachComboBox.SelectedValue).id;

                    var result = Db.ViewContractWithAddPayment.Where(x => x.coach_id == i).Select(x => x).ToList();

                    contractDataGrid.ItemsSource = result;
                }

                contractDataGrid.Items.Refresh();
            }
            catch (Exception)
            {
            }      
        }
        private void deleteServiceFromAbonementButton_Click(object sender, RoutedEventArgs e)
        {
            int row = servicePositionDataGrid.SelectedIndex;
            int id = Convert.ToInt32((servicePositionDataGrid.Columns[0].GetCellContent(servicePositionDataGrid.Items[row]) as TextBlock).Text);
            try
            {
                using (var Db = new DatabaseContext())
                {

                    Db.ServicePosition.Remove(Db.ServicePosition.FirstOrDefault(sp => sp.id == id));
                    Db.SaveChanges();
                }

                MessageBox.Show("Запись удалена успешно!", "Удаление записи", MessageBoxButton.OK, MessageBoxImage.Information);
                ItemsSourseToTable();

                if (serviceTypeComboBox.SelectedIndex == 0) { GroupServiceSum(); }

                if (serviceTypeComboBox.SelectedIndex == 1) { PersonalServiceSum(); }

            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            
        }
 private void coachComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         using (var Db = new DatabaseContext())
         {
             int id = Db.PersonalServiceCoaches.FirstOrDefault(p => p.title == (string)serviceTitleComboBox.SelectedValue).id;
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
        private void saveMain_MenuButton_Click(object sender, RoutedEventArgs e)
        {
            if (isAbonement == true)
            {
                try
                {
                    if (AddDefend.AddAbonementDefend((string)clientComboBox.SelectedValue, Convert.ToDateTime(dateBeginDatePicker.SelectedDate)) == true)
                    {
                        using (var Db = new DatabaseContext())
                        {
                            Abonement abonement = new Abonement();

                            abonement.client_id=Db.ClientsNames.FirstOrDefault(c=>c.name == (string)clientComboBox.SelectedValue).id;

                            abonement.date_begin = Convert.ToDateTime(dateBeginDatePicker.SelectedDate);

                            Db.Abonement.Add(abonement);
                            Db.SaveChanges();

                            abonement_id_g = 0;

                            abonement_id_g = abonement.id;
                        }

                        isAbonement = false;                  
                        InsertToServicePosition();
                        
                        dateendDatePicker.SelectedDate = Convert.ToDateTime(dateBeginDatePicker.SelectedDate);
                    }
                    else
                    {
                        MessageBox.Show("Возможно, были введены некорректные данные!", "Ошибка ввода данных", MessageBoxButton.OK, MessageBoxImage.Error);
                    }

                }
                catch (Exception)
                {
                     MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                }   
            }
            else
            {
                InsertToServicePosition();

                dateendDatePicker.SelectedDate = Convert.ToDateTime(dateBeginDatePicker.SelectedDate);
            }

            ItemsSourseToTable();
        }
        private void searchAbonementButton_Click(object sender, RoutedEventArgs e)
        {
            string parameter = searchAbonementTextBox.Text;

            if (searchServiceTitleCheckBox.IsChecked == true)
            {
                try
                {
                    using (var Db = new DatabaseContext())
                    {
                        var result = Db.ViewAbonements.Where(a => a.title.Contains(parameter)).Select(a => a);

                        abonementDataGrid.ItemsSource = result.ToList();
                    }
                }
                catch (Exception)
                {
                }
            }
            if (searchClientSurnameCheckBox.IsChecked == true)
            {
                try
                {
                    using (var Db = new DatabaseContext())
                    {
                        var result = Db.ViewAbonements.Where(a => a.surname.Contains(parameter)).Select(a => a);

                        abonementDataGrid.ItemsSource = result.ToList();
                    }
                }
                catch (Exception)
                {
                }
            }
        }
        private void savePostButton_Click(object sender, RoutedEventArgs e)
        {

            if (isAdd == true)
            {
                this.Title = "Добавить должность";

                Post post = new Post();
                

                if (AddDefend.AddPostTitle(postTitleTextBox.Text) == true)
                {
                    post.title = postTitleTextBox.Text;

                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            Db.Post.Add(post);
                            Db.SaveChanges();
                        }

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

                editPostButton.IsEnabled = true;
            }
            else
            {
                int row = postDataGrid.SelectedIndex;
                int id = Convert.ToInt32((postDataGrid.Columns[0].GetCellContent(postDataGrid.Items[row]) as TextBlock).Text);

                Post post = new Post();

                try
                {
                    using (var Db = new DatabaseContext())
                    {
                        post = Db.Post.FirstOrDefault(p => p.id == id);

                        Db.Post.Find(post.id).title = postTitleTextBox.Text;

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

                    MessageBoxResult result = new MessageBoxResult();
                    result=MessageBox.Show("Данные о должности успешно изменены!", "", MessageBoxButton.OK, MessageBoxImage.Information);

                    if (result==MessageBoxResult.OK)
                    {
                        postTitleTextBox.Clear();
                        addPostButton.IsEnabled = true;
                        deletePostButton.IsEnabled = true;
                    }

                }
                catch (Exception)
                {
                    MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }

            RefreshPostDataGrid();
        }
        private void ascSortCoachButton_Click(object sender, RoutedEventArgs e)
        {
            searchCoachTextBox.Clear();
            searchCoachTextBox.Text = "Найти...";

            try
            {
                using (var Db = new DatabaseContext())
                {
                    coachDataGrid.ItemsSource = Db.ViewCoaches.OrderBy(x => x.surname).ToList();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void deleteContractButton_Click(object sender, RoutedEventArgs e)
        {
            int row = contractDataGrid.SelectedIndex;
            int id = Convert.ToInt32((contractDataGrid.Columns[0].GetCellContent(contractDataGrid.Items[row]) as TextBlock).Text);
            try
            {
                using (var Db = new DatabaseContext())
                {
                    Db.Contract.Remove(Db.Contract.FirstOrDefault(c => c.id == id));
                    Db.SaveChanges();
                }

                MessageBox.Show("Запись удалена успешно!", "Удаление записи", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void editCoachButton_Click(object sender, RoutedEventArgs e)
        {
            Coach coach = new Coach();

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

            //MessageBox.Show(id.ToString());
            

            try
            {
                using (var Db = new DatabaseContext())
                {
                    coach = Db.Coach.FirstOrDefault(c => c.id == id);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            addCoachWindow addCoachWindow = new addCoachWindow(coach);
            addCoachWindow.Show();
        }
        private void saveServiceOnAbonementButton_Click(object sender, RoutedEventArgs e)
        {
            if (serviceTypeComboBox.SelectedIndex == 0)
            {
                if(AddDefend.AddServicePositionDefendGroup((string)serviceTypeComboBox.SelectedValue, (string)serviceTitleComboBox.SelectedValue, roomNumTextBox.Text) == true)
                {
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            ServicePosition serviceposition = new ServicePosition();

                            serviceposition.abonement_id = abonement_id_g;
                            serviceposition.service_id= Db.GroupServicesForAbonement.FirstOrDefault(gs => gs.title == (string)serviceTitleComboBox.SelectedValue).id;
                            
                            int i=countTimesServiceComboBox.SelectedIndex;

                            switch (i)
                            {
                                case 1:
                                    serviceposition.count = 8;                         

                                    serviceposition.date_end = Convert.ToDateTime(dateendDatePicker.SelectedDate);

                                    break;

                                case 2:
                                    serviceposition.count = 12;

                                    serviceposition.date_end = Convert.ToDateTime(dateendDatePicker.SelectedDate);

                                    break;

                                default:
                                    serviceposition.count = 1;

                                   // dateendDatePicker.SelectedDate = Convert.ToDateTime(dateBeginDatePicker.SelectedDate);

                                    serviceposition.date_end = Convert.ToDateTime(dateendDatePicker.SelectedDate);

                                    break;
                            }

                            Db.ServicePosition.Add(serviceposition);
                            Db.SaveChanges();

                            additionalPaymentTextBox.Text = "0";

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

            if (serviceTypeComboBox.SelectedIndex == 1)
            {
                if(AddDefend.AddServicePositionDefendPersonal((string)serviceTypeComboBox.SelectedValue, (string)serviceTitleComboBox.SelectedValue, (string)coachComboBox.SelectedValue) == true)
                {
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            ServicePosition serviceposition = new ServicePosition();

                            serviceposition.abonement_id = abonement_id_g;
                            serviceposition.service_id = Db.PersonalServicesForAbonement.FirstOrDefault(ps => ps.title == (string)serviceTitleComboBox.SelectedValue).id;

                            int i = countTimesServiceComboBox.SelectedIndex;

                            switch (i)
                            {
                                case 1:
                                    serviceposition.count = 8;

                                    serviceposition.date_end = Convert.ToDateTime(dateendDatePicker.SelectedDate);

                                    break;

                                case 2:
                                    serviceposition.count = 12;                        

                                    serviceposition.date_end = Convert.ToDateTime(dateendDatePicker.SelectedDate);

                                    break;

                                default:
                                    serviceposition.count = 1;

                                    serviceposition.date_end = Convert.ToDateTime(dateendDatePicker.SelectedDate);

                                    break;
                            }


                            Db.ServicePosition.Add(serviceposition);
                            Db.SaveChanges();

                            PersonalServiceSum();

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

            ItemsSourseToTable();

        }
        private void saveContractButton_Click(object sender, RoutedEventArgs e)
        {
            if (isAdd == true)
            {
                Contract contract = new Contract();

                

                if (AddDefend.AddContract(salaryTextBox.Text) == true)
                {
                    contract.salary = Convert.ToDouble(salaryTextBox.Text);

                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            contract.coach_id = Db.CoachesNames.FirstOrDefault(n => n.name == (string)coachComboBox.SelectedValue).id;

                            contract.service_id = Db.Service.FirstOrDefault(n => n.title == (string)titleServiceComboBox.SelectedValue).id;

                            Db.Contract.Add(contract);
                            Db.SaveChanges();

                            MessageBox.Show("Данные о контракте добавлены успешно!", "Добавление данных", MessageBoxButton.OK, MessageBoxImage.Information);

                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Возможно, были введены некорректные данные! Поробуйте ещё раз.", "Ошибка ввода", MessageBoxButton.OK, MessageBoxImage.Error);
                    addContractButton_Click(sender, e);
                }
            }
            else
            {
                try
                {
                    using (var Db = new DatabaseContext())
                    {
                        Db.Contract.Find(contract_g.id).coach_id = Db.CoachesNames.FirstOrDefault(p => p.name == (string)coachComboBox.SelectedValue).id;
                        Db.Contract.Find(contract_g.id).service_id = Db.Service.FirstOrDefault(s => s.title == (string)titleServiceComboBox.SelectedValue).id;
                        Db.Contract.Find(contract_g.id).salary = Convert.ToDouble(salaryTextBox.Text);
                        

                        if (AddDefend.AddContract((Db.Contract.Find(contract_g.id).salary).ToString()) == true)
                        {
                            Db.SaveChanges();
                        }
                        else
                        {
                            MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }

                    MessageBox.Show("Данные о контракте изменены успешно!", "", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                catch (Exception)
                {
                    MessageBox.Show("Возможно, были введены некорректные данные! Попробуйте ещё раз.", "Ошибка изменения данных", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }          
        }
 private void beginDateDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         using (var Db = new DatabaseContext())
         {
             abonementDataGrid.ItemsSource = Db.ViewAbonements.Where(a => (a.date_begin == beginDateDatePicker.SelectedDate)).Select(a => a).ToList();
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
        private void saveChangesAbonementButton_Click(object sender, RoutedEventArgs e)
        {
            abonementDataGrid.Items.Refresh();

            try
            {
                using (var Db = new DatabaseContext())
                {
                    abonementDataGrid.ItemsSource = Db.ViewAbonements.ToList();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }

        }
 private void ItemsSourseToTable()
 {
     try
     {
         using (var Db = new DatabaseContext())
         {
             servicePositionDataGrid.ItemsSource = Db.ViewServicePosition.Where(sp => sp.abonement_id == abonement_id_g).Select(sp => sp).ToList();
             servicePositionDataGrid.Items.Refresh();
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
 private void typeServiceComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (typeServiceComboBox.SelectedIndex.Equals(0))
     {
         try
         {
             using (var Db = new DatabaseContext())
             {
                 titleServiceComboBox.ItemsSource = Db.ViewGroupServices.Select(x => x.title).ToList();
             }
         }
         catch (Exception)
         {
             MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
     else
     {
         try
         {
             using (var Db = new DatabaseContext())
             {
                 titleServiceComboBox.ItemsSource = Db.ViewPersonalServices.Select(x => x.title).ToList();
             }
         }
         catch (Exception)
         {
             MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
 }
        private void searchCoachButton_Click(object sender, RoutedEventArgs e)
        {
            string parameter = searchCoachTextBox.Text;

            if (searchSurnameCheckBox.IsChecked == true)
            {
                try
                {
                    using (var Db = new DatabaseContext())
                    {
                        var result = Db.ViewCoaches.Where(c => c.surname.Contains(parameter)).Select(c => c);

                        coachDataGrid.ItemsSource = result.ToList();
                    }
                }
                catch (Exception)
                {

                }
            }

            if (searchPostCheckBox.IsChecked == true)
            {
                try
                {
                    using (var Db = new DatabaseContext())
                    {
                        var result = Db.ViewCoaches.Where(c => c.title.Contains(parameter)).Select(c => c);

                        coachDataGrid.ItemsSource = result.ToList();
                    }
                }
                catch (Exception)
                {

                }
            }
        }
        private void GroupServiceSum()
        {
            try
            {
                using (var Db = new DatabaseContext())
                {
                    additionalPaymentTextBox.Text = "0";

                    double d = 0;

                    var result = Db.ViewServicePosition.Where(a => a.abonement_id == abonement_id_g).Select(a => a.cost).ToList();

                    foreach (double s in result)
                    {
                        d += s;
                    }

                    generalSumTextBox.Text = d.ToString();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void descSortContractButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (var Db = new DatabaseContext())
                {
                    int i = Db.CoachesNames.FirstOrDefault(n => n.name == (string)coachComboBox.SelectedValue).id;

                    var result = Db.ViewContractWithAddPayment.Where(x => x.coach_id == i).OrderByDescending(x => x.title).Select(x => x).ToList();

                    contractDataGrid.ItemsSource = result;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void PersonalServiceSum()
        {
            try
            {
                using (var Db = new DatabaseContext())
                {
                    double d = 0;

                    var result = Db.ViewServicePosition.Where(a => a.abonement_id == abonement_id_g).Select(a => a.cost).ToList();

                    foreach (double s in result)
                    {
                        d += s;
                    }

                    double add_p = 0;

                    var add_payment = Db.PersonalServiceInAbonement.Where(ab => ab.abonement == abonement_id_g).Select(ab => ab.additional_payment).ToList();

                    foreach (double add_s in add_payment)
                    {
                        add_p += add_s;
                    }

                    
                    additionalPaymentTextBox.Text = add_p.ToString();

                    double sum = 0;

                    sum = d + add_p;

                    generalSumTextBox.Text = sum.ToString();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void editPostButton_Click(object sender, RoutedEventArgs e)
        {
            addPostButton.IsEnabled = false;
            deletePostButton.IsEnabled = false;

            this.Title = "Редактировать должность";

            Post post = new Post();

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

            try
            {
                using (var Db = new DatabaseContext())
                {
                    post = Db.Post.FirstOrDefault(p => p.id == id);
                }

                postTitleTextBox.Text = post.title;
                isAdd = false;
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }       
        }
        private void serviceTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            int i = 0;
            i = serviceTypeComboBox.SelectedIndex;

            switch (i)
            {
                case 0:
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            serviceTitleComboBox.ItemsSource = Db.GroupServicesForAbonement.Select(gs => gs.title).ToList();
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                    }

                    coachComboBox.Width = 0;
                    coachLabel.Width = 0;

                    roomNumLabel.Width = 75;
                    roomNumTextBox.Width = 120;

                    additionalPaymentTextBox.Text = "0";

                    break;

                case 1:
                    try
                    {
                        using (var Db = new DatabaseContext())
                        {
                            serviceTitleComboBox.ItemsSource = Db.PersonalServicesForAbonement.Select(ps => ps.title).ToList();
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
                    }

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

                    coachComboBox.Width = 226;
                    coachLabel.Width = 50;

                   
                    break;
            }
        }
        private void menuFileSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (var Db = new DatabaseContext())
                {
                    Db.SaveChanges();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с базой данных!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            InsertToAbonement();

            addButton_Click(sender, e);
        }
        private void deletePostButton_Click(object sender, RoutedEventArgs e)
        {
            int row = postDataGrid.SelectedIndex;
            int id = Convert.ToInt32((postDataGrid.Columns[0].GetCellContent(postDataGrid.Items[row]) as TextBlock).Text);

            editPostButton.IsEnabled = false;

            try
            {
                using (var Db = new DatabaseContext())
                {
                    Db.Post.Remove(Db.Post.FirstOrDefault(p => p.id == id));
                    Db.SaveChanges();
                }

                MessageBoxResult result = new MessageBoxResult();
                result = MessageBox.Show("Данные о должности успешно удалены!", "", MessageBoxButton.OK, MessageBoxImage.Information);

                if (result == MessageBoxResult.OK)
                {
                    editPostButton.IsEnabled = true;
                }

                RefreshPostDataGrid();

            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка соединения с сервером!", "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }