Exemple #1
0
 public List <Employee> CheckFile(ISerDeser isd, ReaderConfig read)
 {
     if (read.ReadLine().ToLower() == "xml")
     {
         isd = new XmlReadWrite();
         if (File.Exists("employee.xml"))
         {
             list = (List <Employee>)isd.Deserial();
         }
         else
         {
             list = new List <Employee>();
         }
     }
     if (read.ReadLine().ToLower() == "bin")
     {
         isd = new BinReadWrite();
         if (File.Exists("employee.dat"))
         {
             list = (List <Employee>)isd.Deserial();
         }
         else
         {
             list = new List <Employee>();
         }
     }
     if (read.ReadLine().ToLower() != "xml" && read.ReadLine().ToLower() != "bin")
     {
         Console.WriteLine("Проверьте правильность записи конфигурации формата в файле option.ini. Обратите внимание, что доступны только bin и xml форматы");
     }
     return(list);
 }
        static void Main(string[] args)
        {
            AddDelFindInf metod = new AddDelFindInf();
            ReaderConfig  read  = new ReaderConfig();
            FileChecker   check = new FileChecker();

            new Menu().Show(metod, read, check);
        }
        public void Show(AddDelFindInf metod, ReaderConfig read, FileChecker check)
        {
            Console.WriteLine("Считывание конфигурации из файла option.ini, нажмите Enter.");
            read.ReadLine();
            Console.ReadLine();
            Console.WriteLine("Считывание базы сотрудников, нажмите Enter.");
            metod.Employees = check.CheckFile(Isd, read);
            Console.ReadLine();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Нажмите Enter для просмотра всех доступных команд либо введите команду:");
                string command = Console.ReadLine();
                switch (command.ToLower())
                {
                case "add":
                    string surname;
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите фамилию: ");
                        surname = Console.ReadLine();
                        if (surname.Length > 25)
                        {
                            Console.WriteLine("Некорректный ввод фамилии, максимальная длина фамилии 25 символов.");
                            Console.ReadLine();
                        }
                        else
                        {
                            break;
                        }
                    }
                    string firstname;
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите имя сотрудника : ");
                        firstname = Console.ReadLine();
                        if (firstname.Length > 15)
                        {
                            Console.WriteLine("Некорректный ввод имени, максимальная длина имени 15 символов.");
                            Console.ReadLine();
                        }
                        else
                        {
                            break;
                        }
                    }
                    string position;
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите должность сотрудника: ");
                        position = Console.ReadLine();
                        if (position.Length > 20)
                        {
                            Console.WriteLine("Некорректный ввод наименования должности, максимальная длина наименования должности 20 символов.");
                            Console.ReadLine();
                        }
                        else
                        {
                            break;
                        }
                    }
                    metod.AddEmp(surname, firstname, position);
                    Console.WriteLine("Сотрудник " + surname + " " + firstname + " " + position + " успешно добавлен в базу данных.");
                    Console.ReadLine();
                    break;

                case "del":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите фамилию удаляемого сотрудника: ");
                        surname = Console.ReadLine();
                        if (metod.Employees.Exists(a => a.Surname == surname))
                        {
                            metod.Del(surname);
                            Console.WriteLine("Сотрудник с фамилией " + surname + " удален");
                        }
                        else
                        {
                            Console.WriteLine("Такой фамилии нет в списке");
                        }
                        Console.ReadLine();
                        break;
                    }
                    break;

                case "inf":
                    Console.WriteLine(metod.GetInfo(metod.Employees));
                    Console.ReadLine();
                    break;

                case "findsur":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите фамилию сотрудника: ");
                        surname = Console.ReadLine();
                        if (metod.Employees.Exists(a => a.Surname == surname))
                        {
                            Console.WriteLine(metod.FindEmployeeSurname(surname).ToString());
                        }
                        else
                        {
                            Console.WriteLine("Фамилии " + surname + " нет в списке.");
                        }
                        Console.ReadLine();
                        break;
                    }
                    break;

                case "findnam":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите имя сотрудника: ");
                        firstname = Console.ReadLine();
                        if (metod.Employees.Exists(a => a.Firstname == firstname))
                        {
                            Console.WriteLine(metod.FindEmployeeFirstname(firstname).ToString());
                        }
                        else
                        {
                            Console.WriteLine("Имени " + firstname + " нет в списке.");
                        }
                        Console.ReadLine();
                        break;
                    }
                    break;

                case "findpos":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите должность сотрудника: ");
                        position = Console.ReadLine();
                        if (metod.Employees.Exists(a => a.Position == position))
                        {
                            Console.WriteLine(metod.FindEmployeePost(position).ToString());
                        }
                        else
                        {
                            Console.WriteLine("Сотрудников с должностью " + position + " нет в списке.");
                        }
                        Console.ReadLine();
                        break;
                    }
                    break;

                case "exit":
                    if (read.ReadLine().ToLower() == "xml")
                    {
                        Isd = new XmlReadWrite();
                    }
                    if (read.ReadLine().ToLower() == "bin")
                    {
                        Isd = new BinReadWrite();
                    }
                    Isd.Serial(metod.Employees);
                    return;
                }
                if (command.ToLower() != "add" && command.ToLower() != "del" && command.ToLower() != "inf" && command.ToLower() != "findsur" && command.ToLower() != "findnam" && command.ToLower() != "findpos" && command.ToLower() != "exit")
                {
                    Help();
                }
            }
        }