private void Search_Click(object sender, RoutedEventArgs e)
        {
            int yearNow  = DateTimeOffset.Now.Year;
            int monthNow = DateTimeOffset.Now.Month;
            int dayNow   = DateTimeOffset.Now.Day;

            if (BoxVariants.Text == null)
            {
                MessageBox.Show("Выберите критерий для сортировки!", "Ошибка!");
            }
            else
            {
                switch (BoxVariants.Text)
                {
                case "По фамилии":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string surname = SurnameTextBox.Text;
                        if (RealTask2.IsThereOnlyLettersInStroke(surname))
                        {
                            int finded = 0;
                            List <RealTask2.ZNAK> findedList = new List <RealTask2.ZNAK>();
                            foreach (RealTask2.ZNAK item in RealTask2.listZNAK)
                            {
                                if (item.Surname == surname)
                                {
                                    findedList.Add(item); finded++;
                                }
                            }
                            if (finded > 0)
                            {
                                //
                                StreamWriter writer = new StreamWriter("finded.txt", false);
                                foreach (RealTask2.ZNAK item in findedList)
                                {
                                    writer.WriteLine("//");
                                    writer.WriteLine("Фамилия: " + item.Surname);
                                    writer.WriteLine("Имя: " + item.Name);
                                    writer.WriteLine("Дата рождения: " + item.Date_Birth[0] + "." + item.Date_Birth[1] + "." + item.Date_Birth[2]);
                                    writer.WriteLine("Знак Зодиака: " + item.Zodiak_Sign);
                                }
                                MessageBox.Show("Найдено " + finded + " соответствия. Они были записаны в файл finded.txt", "Успех");

                                writer.Close();
                            }
                            else
                            {
                                MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("В фамилии должны быть только буквы. Попробуйте ещё раз."); SurnameTextBox.Text = "";
                        }
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По имени":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string name = NameTextBox.Text;
                        if (RealTask2.IsThereOnlyLettersInStroke(name))
                        {
                            int finded = 0;
                            List <RealTask2.ZNAK> findedList = new List <RealTask2.ZNAK>();
                            foreach (RealTask2.ZNAK item in RealTask2.listZNAK)
                            {
                                if (item.Name == name)
                                {
                                    findedList.Add(item); finded++;
                                }
                            }
                            if (finded > 0)
                            {
                                //
                                StreamWriter writer = new StreamWriter("finded.txt", false);
                                foreach (RealTask2.ZNAK item in findedList)
                                {
                                    writer.WriteLine("//");
                                    writer.WriteLine("Фамилия: " + item.Surname);
                                    writer.WriteLine("Имя: " + item.Name);
                                    writer.WriteLine("Дата рождения: " + item.Date_Birth[0] + "." + item.Date_Birth[1] + "." + item.Date_Birth[2]);
                                    writer.WriteLine("Знак Зодиака: " + item.Zodiak_Sign);
                                }
                                MessageBox.Show("Найдено " + finded + " соответствия. Они были записаны в файл finded.txt", "Успех");

                                writer.Close();
                            }
                            else
                            {
                                MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("В имени должны быть только буквы. Попробуйте ещё раз."); SurnameTextBox.Text = "";
                        }
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По дню рождения":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string day = DayTextBox.Text;
                        //
                        if (day[0] != '0' && RealTask2.IsStringNumber(day))
                        {
                            if (day.Length > 2 || Convert.ToInt32(day) > 31)
                            {
                                MessageBox.Show("День введен некорректно, или больше текущего. Поробуйте ещё раз", "Ошибка!"); DayTextBox.Text = "";
                            }
                            else
                            {
                                int dayInt = Convert.ToInt32(day);
                                int finded = 0;
                                List <RealTask2.ZNAK> findedList = new List <RealTask2.ZNAK>();
                                foreach (RealTask2.ZNAK item in RealTask2.listZNAK)
                                {
                                    if (item.Date_Birth[0] == dayInt)
                                    {
                                        findedList.Add(item); finded++;
                                    }
                                }
                                if (finded > 0)
                                {
                                    //
                                    StreamWriter writer = new StreamWriter("finded.txt", false);
                                    foreach (RealTask2.ZNAK item in findedList)
                                    {
                                        writer.WriteLine("//");
                                        writer.WriteLine("Фамилия: " + item.Surname);
                                        writer.WriteLine("Имя: " + item.Name);
                                        writer.WriteLine("Дата рождения: " + item.Date_Birth[0] + "." + item.Date_Birth[1] + "." + item.Date_Birth[2]);
                                        writer.WriteLine("Знак Зодиака: " + item.Zodiak_Sign);
                                    }
                                    MessageBox.Show("Найдено " + finded + " соответствия. Они были записаны в файл finded.txt", "Успех");

                                    writer.Close();
                                }
                                else
                                {
                                    MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("День введен некорректно. Попробуйте ещё раз.", "Ошибка!"); DayTextBox.Text = "";
                        }
                        //
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По месяцу рождения":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string month = MonthTextBox.Text;
                        //
                        if (month[0] != '0' && RealTask2.IsStringNumber(month))
                        {
                            if (Convert.ToInt32(month) > 12 || month.Length > 2)
                            {
                                MessageBox.Show("Месяц введен некорректно. Поробуйте ещё раз", "Ошибка!"); MonthTextBox.Text = "";
                            }
                            else
                            {
                                int monthInt = Convert.ToInt32(month);
                                int finded   = 0;
                                List <RealTask2.ZNAK> findedList = new List <RealTask2.ZNAK>();
                                foreach (RealTask2.ZNAK item in RealTask2.listZNAK)
                                {
                                    if (item.Date_Birth[1] == monthInt)
                                    {
                                        findedList.Add(item); finded++;
                                    }
                                }
                                if (finded > 0)
                                {
                                    //
                                    StreamWriter writer = new StreamWriter("finded.txt", false);
                                    foreach (RealTask2.ZNAK item in findedList)
                                    {
                                        writer.WriteLine("//");
                                        writer.WriteLine("Фамилия: " + item.Surname);
                                        writer.WriteLine("Имя: " + item.Name);
                                        writer.WriteLine("Дата рождения: " + item.Date_Birth[0] + "." + item.Date_Birth[1] + "." + item.Date_Birth[2]);
                                        writer.WriteLine("Знак Зодиака: " + item.Zodiak_Sign);
                                    }
                                    MessageBox.Show("Найдено " + finded + " соответствия. Они были записаны в файл finded.txt", "Успех");

                                    writer.Close();
                                }
                                else
                                {
                                    MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("Месяц введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По году рождения":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string year = YearTextBox.Text;
                        //
                        if (year[0] != '0' && RealTask2.IsStringNumber(year))
                        {
                            if ((Convert.ToInt32(year) > yearNow))
                            {
                                MessageBox.Show("Год введен некорректно, или год больше текущего. Попробуйте ещё раз", "Ошибка"); YearTextBox.Text = "";
                            }
                            else
                            {
                                int yearInt = Convert.ToInt32(year);
                                int finded  = 0;
                                List <RealTask2.ZNAK> findedList = new List <RealTask2.ZNAK>();
                                foreach (RealTask2.ZNAK item in RealTask2.listZNAK)
                                {
                                    if (item.Date_Birth[2] == yearInt)
                                    {
                                        findedList.Add(item); finded++;
                                    }
                                }
                                if (finded > 0)
                                {
                                    //
                                    StreamWriter writer = new StreamWriter("finded.txt", false);
                                    foreach (RealTask2.ZNAK item in findedList)
                                    {
                                        writer.WriteLine("//");
                                        writer.WriteLine("Фамилия: " + item.Surname);
                                        writer.WriteLine("Имя: " + item.Name);
                                        writer.WriteLine("Дата рождения: " + item.Date_Birth[0] + "." + item.Date_Birth[1] + "." + item.Date_Birth[2]);
                                        writer.WriteLine("Знак Зодиака: " + item.Zodiak_Sign);
                                    }
                                    MessageBox.Show("Найдено " + finded + " соответствия. Они были записаны в файл finded.txt", "Успех");

                                    writer.Close();
                                }
                                else
                                {
                                    MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("Год введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По целой дате":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        bool[] check = new bool[3];
                        //day
                        string day = DayTextBox.Text;
                        //
                        if (day[0] != '0' && RealTask2.IsStringNumber(day))
                        {
                            if (day.Length > 2 || Convert.ToInt32(day) > 31)
                            {
                                MessageBox.Show("День введен некорректно, или больше текущего. Поробуйте ещё раз", "Ошибка!"); DayTextBox.Text = "";
                            }
                            else
                            {
                                check[0] = true;
                            }
                        }
                        else
                        {
                            MessageBox.Show("День введен некорректно. Попробуйте ещё раз.", "Ошибка!"); DayTextBox.Text = "";
                        }
                        //
                        //month
                        string month = MonthTextBox.Text;
                        //
                        if (month[0] != '0' && RealTask2.IsStringNumber(month))
                        {
                            if (Convert.ToInt32(month) > 12 || month.Length > 2)
                            {
                                MessageBox.Show("Месяц введен некорректно. Поробуйте ещё раз", "Ошибка!"); MonthTextBox.Text = "";
                            }
                            else
                            {
                                check[1] = true;
                            }
                        }
                        else
                        {
                            MessageBox.Show("Месяц введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                        //year
                        string year = YearTextBox.Text;
                        //
                        if (year[0] != '0' && RealTask2.IsStringNumber(year))
                        {
                            if ((Convert.ToInt32(year) > yearNow))
                            {
                                MessageBox.Show("Год введен некорректно, или год больше текущего. Попробуйте ещё раз", "Ошибка"); YearTextBox.Text = "";
                            }
                            else
                            {
                                check[2] = true;
                            }
                        }
                        else
                        {
                            MessageBox.Show("Год введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                        if (check[0] == true && check[1] == true && check[2] == true)
                        {
                            int dayInt   = Convert.ToInt32(day);
                            int monthInt = Convert.ToInt32(month);
                            int yearInt  = Convert.ToInt32(year);
                            int finded   = 0;
                            List <RealTask2.ZNAK> findedList = new List <RealTask2.ZNAK>();
                            foreach (RealTask2.ZNAK item in RealTask2.listZNAK)
                            {
                                if (item.Date_Birth[2] == yearInt && item.Date_Birth[2] == monthInt && item.Date_Birth[0] == dayInt)
                                {
                                    findedList.Add(item); finded++;
                                }
                            }
                            if (finded > 0)
                            {
                                //
                                StreamWriter writer = new StreamWriter("finded.txt", false);
                                foreach (RealTask2.ZNAK item in findedList)
                                {
                                    writer.WriteLine("//");
                                    writer.WriteLine("Фамилия: " + item.Surname);
                                    writer.WriteLine("Имя: " + item.Name);
                                    writer.WriteLine("Дата рождения: " + item.Date_Birth[0] + "." + item.Date_Birth[1] + "." + item.Date_Birth[2]);
                                    writer.WriteLine("Знак Зодиака: " + item.Zodiak_Sign);
                                }
                                MessageBox.Show("Найдено " + finded + " соответствия. Они были записаны в файл finded.txt", "Успех");

                                writer.Close();
                            }
                            else
                            {
                                MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }
                }
            }
        }
Example #2
0
        private void Delete_Click(object sender, RoutedEventArgs e)
        {
            int yearNow  = DateTimeOffset.Now.Year;
            int monthNow = DateTimeOffset.Now.Month;
            int dayNow   = DateTimeOffset.Now.Day;

            if (BoxVariants.Text == null)
            {
                MessageBox.Show("Выберите критерий для сортировки!", "Ошибка!");
            }
            else
            {
                switch (BoxVariants.Text)
                {
                case "По фамилии":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string surname = SurnameTextBox.Text;
                        if (RealTask2.IsThereOnlyLettersInStroke(surname))
                        {
                            int finded = 0;
                            List <RealTask2.ZNAK> newList = new List <RealTask2.ZNAK>();
                            for (int i = 0; i < RealTask2.listZNAK.Count; i++)
                            {
                                if (RealTask2.listZNAK[i].Surname != surname)
                                {
                                    newList.Add(RealTask2.listZNAK[i]);
                                }
                            }
                            finded             = RealTask2.listZNAK.Count - newList.Count;
                            RealTask2.listZNAK = newList;
                            if (finded > 0)
                            {
                                MessageBox.Show("Найдено и удалено" + finded + " соответствия.", "Успех");
                            }
                            else
                            {
                                MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("В фамилии должны быть только буквы. Попробуйте ещё раз."); SurnameTextBox.Text = "";
                        }
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По имени":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string name = NameTextBox.Text;
                        if (RealTask2.IsThereOnlyLettersInStroke(name))
                        {
                            int finded = 0;
                            List <RealTask2.ZNAK> newList = new List <RealTask2.ZNAK>();
                            for (int i = 0; i < RealTask2.listZNAK.Count; i++)
                            {
                                if (RealTask2.listZNAK[i].Name != name)
                                {
                                    newList.Add(RealTask2.listZNAK[i]);
                                }
                            }
                            finded = RealTask2.listZNAK.Count - newList.Count;

                            RealTask2.listZNAK = newList;
                            if (finded > 0)
                            {
                                MessageBox.Show("Найдено и удалено " + finded + " соответствия.", "Успех");
                            }
                            else
                            {
                                MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("В имени должны быть только буквы. Попробуйте ещё раз."); SurnameTextBox.Text = "";
                        }
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По дню рождения":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string day = DayTextBox.Text;
                        //
                        if (day[0] != '0' && RealTask2.IsStringNumber(day))
                        {
                            if (day.Length > 2 || Convert.ToInt32(day) > 31)
                            {
                                MessageBox.Show("День введен некорректно, или больше текущего. Поробуйте ещё раз", "Ошибка!"); DayTextBox.Text = "";
                            }
                            else
                            {
                                int dayInt = Convert.ToInt32(day);
                                int finded = 0;
                                List <RealTask2.ZNAK> newList = new List <RealTask2.ZNAK>();
                                for (int i = 0; i < RealTask2.listZNAK.Count; i++)
                                {
                                    if (RealTask2.listZNAK[i].Date_Birth[0] != dayInt)
                                    {
                                        newList.Add(RealTask2.listZNAK[i]);
                                    }
                                }
                                finded = RealTask2.listZNAK.Count - newList.Count;

                                RealTask2.listZNAK = newList;
                                if (finded > 0)
                                {
                                    MessageBox.Show("Найдено и удалено " + finded + " соответствия.", "Успех");
                                }
                                else
                                {
                                    MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("День введен некорректно. Попробуйте ещё раз.", "Ошибка!"); DayTextBox.Text = "";
                        }
                        //
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По месяцу рождения":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string month = MonthTextBox.Text;
                        //
                        if (month[0] != '0' && RealTask2.IsStringNumber(month))
                        {
                            if (Convert.ToInt32(month) > 12 || month.Length > 2)
                            {
                                MessageBox.Show("Месяц введен некорректно. Поробуйте ещё раз", "Ошибка!"); MonthTextBox.Text = "";
                            }
                            else
                            {
                                int monthInt = Convert.ToInt32(month);
                                int finded   = 0;
                                List <RealTask2.ZNAK> newList = new List <RealTask2.ZNAK>();
                                for (int i = 0; i < RealTask2.listZNAK.Count; i++)
                                {
                                    if (RealTask2.listZNAK[i].Date_Birth[1] != monthInt)
                                    {
                                        newList.Add(RealTask2.listZNAK[i]);
                                    }
                                }
                                finded = RealTask2.listZNAK.Count - newList.Count;

                                RealTask2.listZNAK = newList;

                                if (finded > 0)
                                {
                                    MessageBox.Show("Найдено и удалено " + finded + " соответствия.", "Успех");
                                }
                                else
                                {
                                    MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("Месяц введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По году рождения":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        string year = YearTextBox.Text;
                        //
                        if (year[0] != '0' && RealTask2.IsStringNumber(year))
                        {
                            if ((Convert.ToInt32(year) > yearNow))
                            {
                                MessageBox.Show("Год введен некорректно, или год больше текущего. Попробуйте ещё раз", "Ошибка"); YearTextBox.Text = "";
                            }
                            else
                            {
                                int yearInt = Convert.ToInt32(year);
                                int finded  = 0;
                                List <RealTask2.ZNAK> newList = new List <RealTask2.ZNAK>();
                                for (int i = 0; i < RealTask2.listZNAK.Count; i++)
                                {
                                    if (RealTask2.listZNAK[i].Date_Birth[2] != yearInt)
                                    {
                                        newList.Add(RealTask2.listZNAK[i]);
                                    }
                                }
                                finded = RealTask2.listZNAK.Count - newList.Count;

                                RealTask2.listZNAK = newList;
                                if (finded > 0)
                                {
                                    MessageBox.Show("Найдено и удалено " + finded + " соответствия.", "Успех");
                                }
                                else
                                {
                                    MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("Год введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }

                case "По целой дате":
                {
                    if (RealTask2.listZNAK.Count > 0)
                    {
                        bool[] check = new bool[3];
                        //day
                        string day = DayTextBox.Text;
                        //
                        if (day[0] != '0' && RealTask2.IsStringNumber(day))
                        {
                            if (day.Length > 2 || Convert.ToInt32(day) > 31)
                            {
                                MessageBox.Show("День введен некорректно, или больше текущего. Поробуйте ещё раз", "Ошибка!"); DayTextBox.Text = "";
                            }
                            else
                            {
                                check[0] = true;
                            }
                        }
                        else
                        {
                            MessageBox.Show("День введен некорректно. Попробуйте ещё раз.", "Ошибка!"); DayTextBox.Text = "";
                        }
                        //
                        //month
                        string month = MonthTextBox.Text;
                        //
                        if (month[0] != '0' && RealTask2.IsStringNumber(month))
                        {
                            if (Convert.ToInt32(month) > 12 || month.Length > 2)
                            {
                                MessageBox.Show("Месяц введен некорректно. Поробуйте ещё раз", "Ошибка!"); MonthTextBox.Text = "";
                            }
                            else
                            {
                                check[1] = true;
                            }
                        }
                        else
                        {
                            MessageBox.Show("Месяц введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                        //year
                        string year = YearTextBox.Text;
                        //
                        if (year[0] != '0' && RealTask2.IsStringNumber(year))
                        {
                            if ((Convert.ToInt32(year) > yearNow))
                            {
                                MessageBox.Show("Год введен некорректно, или год больше текущего. Попробуйте ещё раз", "Ошибка"); YearTextBox.Text = "";
                            }
                            else
                            {
                                check[2] = true;
                            }
                        }
                        else
                        {
                            MessageBox.Show("Год введен некорректно. Попробуйте ещё раз.", "Ошибка!"); MonthTextBox.Text = "";
                        }
                        //
                        if (check[0] == true && check[1] == true && check[2] == true)
                        {
                            int dayInt   = Convert.ToInt32(day);
                            int monthInt = Convert.ToInt32(month);
                            int yearInt  = Convert.ToInt32(year);
                            int finded   = 0;
                            List <RealTask2.ZNAK> newList = new List <RealTask2.ZNAK>();
                            for (int i = 0; i < RealTask2.listZNAK.Count; i++)
                            {
                                if (RealTask2.listZNAK[i].Date_Birth[0] == dayInt && RealTask2.listZNAK[i].Date_Birth[1] == monthInt && RealTask2.listZNAK[i].Date_Birth[2] == yearInt)
                                {
                                }
                                else
                                {
                                    newList.Add(RealTask2.listZNAK[i]);
                                }
                            }
                            finded = RealTask2.listZNAK.Count - newList.Count;

                            RealTask2.listZNAK = newList;

                            if (finded > 0)
                            {
                                MessageBox.Show("Найдено и удалено" + finded + " соответствия.", "Успех");
                            }
                            else
                            {
                                MessageBox.Show("Не найдено ни одного соответствия!", "Ошибка!");
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("В листе нет элементов!", "Ошибка!");
                    }
                    break;
                }
                }
            }
        }