Exemplo n.º 1
0
        public void AddRecord()
        {
            Console.WriteLine("Введите ФИО работника\n");
            Worker worker = new Worker();
            Regex  fio    = new Regex(@"^\w+\s\w+\s\w+$");

            while (true)
            {
                string result = Console.ReadLine();
                if (fio.IsMatch(result))
                {
                    worker.FIO = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }
            Console.WriteLine("Введите табельный номер сотрудника (10 цифр)");
            Regex num = new Regex(@"^[0-9]{10}$");

            while (true)
            {
                string result = Console.ReadLine();
                if (num.IsMatch(result))
                {
                    if (!ReaderWriter.IsExistNumber(result))
                    {
                        worker.TabNumber = result;
                        break;
                    }
                    Console.WriteLine("Данный табельный номер существует!");
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }
            Console.WriteLine("Выберите должность из списка:" +
                              "\n1 - Управляющий" +
                              "\n2 - Директор" +
                              "\n3 - Менеджер" +
                              "\n4 - Представитель" +
                              "\n5 - Секретарь" +
                              "\n6 - Работник 1 класса" +
                              "\n7 - Работник 2 класса" +
                              "\n8 - Начальник отдела" +
                              "\n9 - Руководитель персонала");
            while (true)
            {
                bool   needBreak = false;
                string result    = Console.ReadKey(true).KeyChar.ToString();
                switch (result)
                {
                case "1":
                    worker.Position = "Управляющий";
                    needBreak       = true;
                    break;

                case "2":
                    worker.Position = "Директор";
                    needBreak       = true;
                    break;

                case "3":
                    worker.Position = "Менеджер";
                    needBreak       = true;
                    break;

                case "4":
                    worker.Position = "Представитель";
                    needBreak       = true;
                    break;

                case "5":
                    worker.Position = "Секретарь";
                    needBreak       = true;
                    break;

                case "6":
                    worker.Position = "Работник 1 класса";
                    needBreak       = true;
                    break;

                case "7":
                    worker.Position = "Работник 2 класса";
                    needBreak       = true;
                    break;

                case "8":
                    worker.Position = "Начальник отдела";
                    needBreak       = true;
                    break;

                case "9":
                    worker.Position = "Руководитель персонала";
                    needBreak       = true;
                    break;

                default:
                    Console.WriteLine("Нет такого варианта!");
                    break;
                }
                if (needBreak)
                {
                    break;
                }
            }

            Console.WriteLine("Введите номер телефона сотрудника без 8");
            Regex phone = new Regex(@"^[0-9]{10}$");

            while (true)
            {
                string result = Console.ReadLine();
                if (phone.IsMatch(result))
                {
                    worker.PhoneNumber = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите адрес проживания сотрудника" +
                              "\nАдрес вводить в формате Город, улица, дом, квартира");
            while (true)
            {
                string result = Console.ReadLine();
                if (!String.IsNullOrWhiteSpace(result))
                {
                    worker.Address = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите дату начала работы сотрудника в формате дд.мм.гггг");
            Regex date = new Regex(@"^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}$");

            while (true)
            {
                string result = Console.ReadLine();
                if (date.IsMatch(result))
                {
                    DateTime res;
                    if (DateTime.TryParse(result, out res))
                    {
                        worker.StartWorkDate = result;
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите стаж  (полных лет)");
            Regex exp = new Regex(@"^[0-9]{1,2}");

            while (true)
            {
                string result = Console.ReadLine();
                if (exp.IsMatch(result))
                {
                    worker.Experience = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Данные введены не верно\n");
                }
            }

            Console.WriteLine("Введите образование" +
                              "\n1 - Cреднее" +
                              "\n2 - Cреднее - профессиональное" +
                              "\n3 - Высшее");
            while (true)
            {
                bool   needBreak = false;
                string result    = Console.ReadKey(true).KeyChar.ToString();
                switch (result)
                {
                case "1":
                    needBreak        = true;
                    worker.Education = "Cреднее";
                    break;

                case "2":
                    needBreak        = true;
                    worker.Education = "Cреднее - профессиональное";
                    break;

                case "3":
                    needBreak        = true;
                    worker.Education = "Высшее";
                    break;

                default:
                    Console.WriteLine("Данные введены не верно!");
                    break;
                }
                if (needBreak)
                {
                    break;
                }
            }

            ReaderWriter.WriteWorker(worker);

            Console.WriteLine("\nЗапись успешно добавлена!\n\n");
        }