Exemplo n.º 1
0
        public void AddRecord()
        {
            Instruction instruction = new Instruction();

            Console.WriteLine("Введите название поручения");
            while (true)
            {
                string result = Console.ReadLine();
                if (!String.IsNullOrWhiteSpace(result))
                {
                    instruction.Name = result;
                    break;
                }
                else
                {
                    Console.WriteLine("Введена пустая строка!");
                }
            }


            Console.WriteLine("Введите трудоемкость поручения (часы) ");
            Regex name = new Regex(@"^[0-9]+$");

            while (true)
            {
                string result = Console.ReadLine();
                if (name.IsMatch(result))
                {
                    instruction.Labour = 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))
                    {
                        instruction.IssueDate = result;
                        break;
                    }
                }
                Console.WriteLine("Данные введены не верно\n");
            }

            Console.WriteLine("Введите дату плановую дату окончания в формате дд.мм.гггг");
            while (true)
            {
                string result = Console.ReadLine();
                if (date.IsMatch(result))
                {
                    DateTime res;
                    if (DateTime.TryParse(result, out res))
                    {
                        instruction.PlanEndDate = result;
                        break;
                    }
                }
                Console.WriteLine("Данные введены не верно\n");
            }

            Console.WriteLine("Введите дату реальную дату окончания в формате дд.мм.гггг. Если работа еще выполняется, введите 0");
            while (true)
            {
                string result = Console.ReadLine();
                if (result == "0")
                {
                    instruction.RealEndDate = "В процессе выполнения";
                    break;
                }
                if (date.IsMatch(result))
                {
                    DateTime res;
                    if (DateTime.TryParse(result, out res))
                    {
                        instruction.RealEndDate = result;
                        break;
                    }
                }
                Console.WriteLine("Данные введены не верно\n");
            }

            Console.WriteLine("К какому сотруднику будет привязано поручение? Введите его номер из списка ниже");
            int count = ReaderWriter.ReadWorkersWithNumbers();

            if (count == 0)
            {
                Console.WriteLine("Ни одного работника не существует!");
                return;
            }
            while (true)
            {
                string result = Console.ReadKey().KeyChar.ToString();
                Console.WriteLine();
                Regex numWorker = new Regex(@"[0-9]+");
                if (numWorker.IsMatch(result))
                {
                    int res = int.Parse(result);
                    if (res > 0 && res <= count)
                    {
                        string worker = ReaderWriter.GetWorkerByNumber(res);
                        if (worker != null)
                        {
                            instruction.Worker = worker;
                            break;
                        }
                    }
                    Console.WriteLine("Введен некорректный номер!");
                }
            }

            ReaderWriter.WriteInstruction(instruction);

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