//фильтрация по Gender
        private void EditString_Click(object sender, RoutedEventArgs e)
        {
            cIient selectGender = (cIient)FilterBox.SelectedItem;

            using (LanguageEntities db = new LanguageEntities())
            {
                try
                {
                    switch (selectGender.Gender)
                    {
                    case "м":
                        var queryMale = from u in db.cIient
                                        where (u.Gender.ToString() == selectGender.Gender)
                                        select new { u.IDClient, u.SecondName, u.FirstName, u.MiddleName, u.Gender };
                        DataTable.ItemsSource = queryMale.ToList();
                        TableCount.Text       = queryMale.Count().ToString();
                        break;

                    case "ж":
                        var queryFemale = from u in db.cIient
                                          where (u.Gender.ToString() == selectGender.Gender)
                                          select new { u.IDClient, u.SecondName, u.FirstName, u.MiddleName, u.Gender };
                        DataTable.ItemsSource = queryFemale.ToList();
                        TableCount.Text       = queryFemale.Count().ToString();
                        break;
                    }
                }
                catch { }
            }
        }
        // Производим сортировку по определенным критериям
        private void UpdateButton_Click(object sender, RoutedEventArgs e)
        {
            using (LanguageEntities db = new LanguageEntities())
            {
                try
                {
                    //сортировка
                    switch (SortBox.Text)
                    {
                    case "Фамилия":
                        DataTable.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("SecondName", System.ComponentModel.ListSortDirection.Ascending));
                        DataTable.Items.Refresh();
                        break;

                    case "Дата посещения":
                        DataTable.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("DateOfRegistration", System.ComponentModel.ListSortDirection.Ascending));
                        DataTable.Items.Refresh();
                        break;

                    case "По дате рождения":
                        DataTable.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("DateOfBirth", System.ComponentModel.ListSortDirection.Descending));
                        DataTable.Items.Refresh();

                        break;
                    }
                }
                catch { }
            }
        }
        private void DelButtonClick(object sender, RoutedEventArgs e)
        {
            if (PhoneDel.Text == "")

            {
                MessageBox.Show("Заполните пожалуйста все поля!");
            }

            else
            {
                string PhoneNew = Convert.ToString(PhoneDel.Text);

                LanguageEntities db = new LanguageEntities();

                db.cIient.Load();

                var delPhone = db.cIient.Where(u => u.Phone == PhoneNew).FirstOrDefault();

                if (delPhone == null)
                {
                    MessageBox.Show("Данные с таким номером не существуют.");
                }
                else
                {
                    db.cIient.Remove(delPhone);
                    db.SaveChanges();
                    MessageBox.Show("Данные успешно удалены");
                }
            }
        }
        private void ButtonReset(object sender, RoutedEventArgs e)
        {
            using (LanguageEntities db = new LanguageEntities())
            {
                var search = from u in db.cIient
                             where ((u.FirstName.Contains(SearchBox.Text) || (u.SecondName.Contains(SearchBox.Text)) || (u.MiddleName.Contains(SearchBox.Text) ||
                                                                                                                         (u.Phone.Contains(SearchBox.Text)) || (u.Email.Contains(SearchBox.Text)))))
                             select new { u.IDClient, u.SecondName, u.FirstName, u.MiddleName, u.Gender, u.Phone, u.DateOfBirth, u.Email, u.DateOfRegistration };

                DataTable.ItemsSource = search.ToList();
                TableCount.Text       = search.Count().ToString();
            }
        }
        public WinClient()
        {
            InitializeComponent();



            // подгружаем таблицу сс базы данных, с которой в дальнейшем будем работать
            using (LanguageEntities db = new LanguageEntities())
            {
                // подгружаем табличку о клиентах
                db.cIient.Load();


                FilterBox.ItemsSource = db.cIient.Local.ToBindingList();

                var query = from u in db.cIient
                            select new { u.IDClient, u.SecondName, u.FirstName, u.MiddleName, u.Gender, u.Phone, u.DateOfBirth, u.Email, u.DateOfRegistration };

                DataTable.ItemsSource = query.ToList();
                TableCount.Text       = query.Count().ToString();
            }
        }
        // Кнопка по добавлению данных
        private void AddingDataButton(object sender, RoutedEventArgs e)
        {
            // Если все ячейки пустые, то просим пользователя добавить в них данные
            if (SecondName.Text == "" ||
                NameAdd.Text == "" ||
                MiddleNameAdd.Text == "" ||
                GenderAdd.Text == "" ||
                PhoneAdd.Text == "" ||
                EmailAdd.Text == "" ||
                DateAdd.Text == "")

            {
                MessageBox.Show("пожалуйста заполните каждое поле");
            }


            // Если ячейки не пустые то производим сохранение введенных данных
            else
            {
                LanguageEntities db = new LanguageEntities();
                db.cIient.Load();


                // Обозначим рандом, в дальнейшем сгенерированное число здесь будет  использовано как ID
                Random rnd      = new Random();
                int    RandomID = rnd.Next();

                // Первоначальное ID, которое в дальнейшем заменим на случайное число
                int newIDAdd = 102;

                var ID_NEW = db.cIient.Where(u => u.IDClient == newIDAdd).FirstOrDefault();

                //Если ячейки не пустые
                if (SecondName.Text != "" ||
                    NameAdd.Text != "" ||
                    MiddleNameAdd.Text != "" ||
                    GenderAdd.Text != "" ||
                    PhoneAdd.Text != "" ||
                    EmailAdd.Text != "" ||
                    DateAdd.Text != "")

                {
                    // сохраняем полученные данные
                    string   newSecondName    = SecondName.Text;
                    string   newNameAdd       = NameAdd.Text;
                    string   newMiddleNameAdd = MiddleNameAdd.Text;
                    string   newGenderAdd     = GenderAdd.Text;
                    string   newPhoneAdd      = PhoneAdd.Text;
                    string   newEmailAdd      = EmailAdd.Text;
                    DateTime newDate          = Convert.ToDateTime(DateAdd.Text);

                    // передаем полученные данные в базу данных
                    ID_NEW             = new cIient();
                    ID_NEW.SecondName  = newSecondName;
                    ID_NEW.FirstName   = newNameAdd;
                    ID_NEW.MiddleName  = newMiddleNameAdd;
                    ID_NEW.Gender      = newGenderAdd;
                    ID_NEW.Phone       = newPhoneAdd;
                    ID_NEW.Email       = newEmailAdd;
                    ID_NEW.IDClient    = RandomID;
                    ID_NEW.DateOfBirth = newDate;
                    db.cIient.Add(ID_NEW);

                    //Производим сохранение данных
                    db.SaveChanges();

                    //выводим сообщение, что все прошло успешно
                    MessageBox.Show("Данные успешно добавлены");
                }
            }
        }