Example #1
0
 public List <Employee> TickFile(ILog log, IReadFile read)
 {
     if (read.ReadLine() == "XML")
     {
         log = new LogXml();
         if (File.Exists("employees.xml"))
         {
             list = (List <Employee>)log.LogOut();
         }
         else
         {
             list = new List <Employee>();
         }
     }
     if (read.ReadLine() == "BIN")
     {
         log = new LogBinary();
         if (File.Exists("employees.dat"))
         {
             list = (List <Employee>)log.LogOut();
         }
         else
         {
             list = new List <Employee>();
         }
     }
     return(list);
 }
Example #2
0
        public List <Employee> CheckFile(ILog log, IReadFile read)
        {
            if (read.ReadLine() == "XML")
            {
                log = new LogXml();
                if (File.Exists("employees.xml"))
                {
                    list = (List <Employee>)log.LogOut();
                }
                else
                {
                    list = new List <Employee>();
                }
            }
            if (read.ReadLine() == "BIN")
            {
                log = new LogBinary();
                if (File.Exists("employees.dat"))
                {
                    list = (List <Employee>)log.LogOut();
                }
                else
                {
                    list = new List <Employee>();
                }
            }
            //list.Add(new Employee("AB325721", "Иван", "Кононов", "*****@*****.**", "+38(099)345-45-67", false, new DateTime(1990, 9, 07), "Менеджер", 500, new DateTime(2015, 8, 23)));
            //list.Add(new Employee("АК859062", "Антонина", "Громова", "*****@*****.**", "+38(097)256-15-68", true, new DateTime(1972, 7, 15), "Технолог", 1200, new DateTime(2010, 4, 19)));
            //list.Add(new Employee("AН216084", "Петр", "Логинов", "*****@*****.**", "+38(095)213-33-13", false, new DateTime(1984, 2, 20), "Маркетолог", 800, new DateTime(2014, 9, 03)));
            //list.Add(new Employee("ВК114267", "Ирина", "Фадеева", "*****@*****.**", "+38(050)468-09-77", true, new DateTime(1976, 1, 09), "Бухгалтер", 1500, new DateTime(2011, 1, 13)));
            //list.Add(new Employee("ВН307643", "Семен", "Сорокин", "*****@*****.**", "+38(066)178-89-55", true, new DateTime(1978, 4, 26), "Юрист", 1000, new DateTime(2013, 10, 28)));

            return(list);
        }
Example #3
0
 public string GetCustomerColors(string filePath)
 {
     if (string.IsNullOrEmpty(filePath))
     {
         throw new ArgumentException("file is missing");
     }
     try
     {
         IEnumerable <string> inputLines = readFile.ReadLine(filePath);
         readCustomerandColor(inputLines);
         generateOutPut();
         return(takeLessExpensiveOutPut());
     }
     catch
     {
         throw;
     }
 }
Example #4
0
 public static Frames Load(string path, IReadFile readFile)
 {
     Frames frames = new Frames(FrameCountRule.GetCount());
     try
     {
         readFile.Open(path);
         string content = readFile.ReadLine();
         foreach (string str in content.Split(','))
         {
             if (str == "") break;
             frames = RollService.Roll(frames, int.Parse(str));
         }
     }
     finally
     {
         readFile.Close();
     }
     return frames;
 }
Example #5
0
        public void Show(IOperation operation, IReadFile read, ICheckFile check, IDrowTable draw)
        {
            // operation.Employees = check.CheckFile(Log, read);
            operation.Employees = check.TickFile(Log, read);
            string alias;

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Введите команду: ");
                string command = Console.ReadLine();

                switch (command.ToLower())
                {
                case "add":

                    Console.Clear();

                    Console.WriteLine("Введите псевдоним сотрудника: ");
                    alias = Console.ReadLine();

                    if (alias.Length >= 15)
                    {
                        Console.WriteLine("Приносим извенения, но ваш псевдоним слишком длинный.");
                        Console.ReadKey();
                        continue;
                    }

                    //if (operation.Employees.Exists(x => x.Alias == alias))
                    //{

                    string name;
                    while (true)
                    {
                        Console.Clear();

                        Console.WriteLine("Введите имя сотрудника: ");
                        name = Console.ReadLine();
                        if (name.Length >= 16)
                        {
                            Console.WriteLine("Приносим извенения, но имя слишком длинное слишком длинное. Пожалуйста, используйте сокращенную форму имени.");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }
                    string surname;
                    while (true)
                    {
                        Console.Clear();

                        Console.WriteLine("Введите фамилию сотрудника: ");
                        surname = Console.ReadLine();
                        if (surname.Length >= 18)
                        {
                            Console.WriteLine("Приносим извенения, но фамилия слишком длинное слишком длинное. Пожалуйста, используйте сокращенную форму фамилии.");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }
                    string department;
                    while (true)
                    {
                        Console.Clear();

                        Console.WriteLine("Введите отдел сотрудника: ");
                        department = Console.ReadLine();
                        if (surname.Length >= 22)
                        {
                            Console.WriteLine("Некорректный ввод названия отдела.");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }


                    string position;
                    while (true)
                    {
                        Console.Clear();

                        Console.WriteLine("Введите дожность сотрудника: ");
                        position = Console.ReadLine();
                        if (surname.Length >= 20)
                        {
                            Console.WriteLine("Некорректный наименования должности.");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }
                    operation.NewEmp(alias, name, surname, department, position);
                    Console.WriteLine("Сотрудник успешно добавлен в базу данных.");

                    //}
                    //else
                    //{
                    //    Console.WriteLine("Сотрудник с такими паспортными данными уже существует!");
                    //}


                    Console.ReadKey();
                    break;

                case "delete":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите псевдоним сотрудника, которого вы хотите удалить");
                        alias = Console.ReadLine();
                        if (operation.Employees.Exists(x => x.Alias == alias))
                        {
                            operation.Delete(alias);
                            Console.WriteLine("Сотрудник был успешно удален с базы данных");
                            Console.ReadKey();
                            break;
                        }
                        else
                        {
                            Console.WriteLine("Сотрудника с таким псевдонимом не найдено.");
                            Console.ReadKey();
                            break;
                        }
                    }
                    break;

                case "all":

                    Console.Clear();
                    Console.WriteLine(draw.MakeTableResults(operation.Employees));
                    Console.ReadKey();
                    break;

                case "find":

                    Console.Clear();
                    Console.WriteLine("Введите псевдоним сотрудника, которого вы хотите найти");
                    alias = Console.ReadLine();
                    if (operation.Employees.Exists(x => x.Alias == alias))
                    {
                        operation.Delete(alias);
                        Console.WriteLine(operation.FindEmployee(alias).ToString());
                        Console.ReadKey();
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Сотрудника с таким псевдонимом не найдено.");
                        Console.ReadKey();
                        break;
                    }

                case "exit":
                    if (read.ReadLine() == "XML")
                    {
                        Log = new LogXml();
                    }
                    if (read.ReadLine() == "BIN")
                    {
                        Log = new LogBinary();
                    }
                    Log.LogSave(operation.Employees);
                    return;
                }
                if (command.ToLower() != "add" && command.ToLower() != "delete" && command.ToLower() != "all" &&
                    command.ToLower() != "find" && command.ToLower() != "exit")
                {
                    Help();
                }
            }
        }
Example #6
0
        public void Show(IOperations operations, IValidate validate, IReadFile read, ICheckFile check, IDrawTable draw)
        {
            operations.Employees = check.CheckFile(Log, read);

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Введите команду: ");
                string command = Console.ReadLine();

                switch (command.ToLower())
                {
                case "add":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите паспортные данные сотрудника: ");
                        pasp = Console.ReadLine();
                        if (validate.Check(pasp, pasport) == false)
                        {
                            Console.WriteLine("Некорректный ввод паспортных данных сотрудника: ");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }

                    if (operations.Employees.Exists(x => x.PassportData == pasp) == false)
                    {
                        string name;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите имя сотрудника (не более 10 символов): ");
                            name = Console.ReadLine();
                            if (name.Length > 10)
                            {
                                Console.WriteLine("Некорректный ввод имени сотрудника!");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }
                        string surname;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите фамилию сотрудника (не более 15 символов): ");
                            surname = Console.ReadLine();
                            if (surname.Length > 15)
                            {
                                Console.WriteLine("Некорректный ввод фамилии сотрудника!");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        string email;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите email сотрудника: ");
                            email = Console.ReadLine();
                            string mail = @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" +
                                          @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$";
                            if (validate.Check(email, mail) == false)
                            {
                                Console.WriteLine("Некорректный ввод почты сотрудника: ");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        string tel;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите телефон сотрудника: ");
                            tel = Console.ReadLine();
                            string tel1 = @"^\+\d{2}\(\d{3}\)\d{3}-\d{2}-\d{2}$";
                            if (validate.Check(tel, tel1) == false)
                            {
                                Console.WriteLine("Некорректный ввод номера телефона сотрудника: ");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        bool statusF;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите 'False', если сотрудник холост/не замужем, в противном случае - введите 'True': ");
                            text = Console.ReadLine();
                            if (Boolean.TryParse(text, out statusF) == false)
                            {
                                Console.WriteLine("Некорректный ввод семейного положения сотрудника: ");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        DateTime bDate;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите дату рождения сотрудника в формате dd.mm.yy: ");
                            text = Console.ReadLine();
                            if (DateTime.TryParse(text, out bDate) == false)
                            {
                                Console.WriteLine("Некорректный ввод даты рождения сотрудника: ");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        string position;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите должность сотрудника (не более 18 символов): ");
                            position = Console.ReadLine();
                            if (surname.Length > 18)
                            {
                                Console.WriteLine("Некорректная длина пасортных данных сотрудника!");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        decimal salary;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите должностной оклад сотрудника: ");
                            text = Console.ReadLine();
                            if (Decimal.TryParse(text, out salary) == false || salary < 0)
                            {
                                Console.WriteLine("Некорректный ввод должностного оклада сотрудника: ");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        DateTime eDate;
                        while (true)
                        {
                            Console.Clear();
                            Console.WriteLine("Введите дату приема на работу сотрудника в формате dd.mm.yy: ");
                            text = Console.ReadLine();
                            if (DateTime.TryParse(text, out eDate) == false)
                            {
                                Console.WriteLine("Некорректный ввод даты приема на работу сотрудника: ");
                                Console.ReadKey();
                            }
                            else
                            {
                                break;
                            }
                        }

                        operations.AddEmp(pasp, name, surname, email, tel, statusF, bDate, position, salary, eDate);
                        Console.WriteLine("Сотрудник успешно добавлен в базу данных.");
                    }
                    else
                    {
                        Console.WriteLine("Сотрудник с такими паспортными данными уже существует!");
                    }
                    Console.ReadKey();
                    break;

                case "del":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите паспортные данные сотрудника: ");
                        pasp = Console.ReadLine();
                        if (validate.Check(pasp, pasport) == false)
                        {
                            Console.WriteLine("Некорректный ввод паспортных данных сотрудника: ");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (operations.Employees.Exists(x => x.PassportData == pasp))
                    {
                        operations.Del(pasp);
                        Console.WriteLine("Удаление прошло успешно.");
                    }
                    else
                    {
                        Console.WriteLine("Сотрудника с такими паспортными данными не существует!");
                    }
                    Console.ReadKey();
                    break;

                case "see_all":
                    Console.WriteLine(draw.MakeTableResults(operations.Employees));
                    Console.ReadKey();
                    break;

                case "find_emp":
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите паспортные данные сотрудника: ");
                        pasp = Console.ReadLine();
                        if (validate.Check(pasp, pasport) == false)
                        {
                            Console.WriteLine("Некорректный ввод паспортных данных сотрудника: ");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }
                    Console.Clear();
                    if (operations.Employees.Exists(x => x.PassportData == pasp))
                    {
                        Console.WriteLine(operations.FindEmployee(pasp).ToString());
                    }
                    else
                    {
                        Console.WriteLine("Сотрудника с такими паспортными данными не существует!");
                    }
                    Console.ReadKey();
                    break;

                case "sort_salary":
                    decimal min;
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите нижнюю границу зарплаты для сортировки: ");
                        text = Console.ReadLine();
                        if (Decimal.TryParse(text, out min) == false || min < 0)
                        {
                            Console.WriteLine("Некорректный ввод данных.");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }
                    Console.WriteLine(draw.MakeTableResults(operations.SortSalary(min)));
                    Console.ReadKey();
                    break;

                case "sort_date":
                    string   date;
                    DateTime dateMin;
                    DateTime dateMax;
                    while (true)
                    {
                        Console.Clear();
                        Console.WriteLine("Введите начало периода сортировки: ");
                        text = Console.ReadLine();
                        Console.WriteLine("Введите конец периода сортировки: ");
                        date = Console.ReadLine();
                        if (DateTime.TryParse(text, out dateMin) == false || DateTime.TryParse(date, out dateMax) == false)
                        {
                            Console.WriteLine("Некорректный ввод данных.");
                            Console.ReadKey();
                        }
                        else
                        {
                            break;
                        }
                    }
                    Console.WriteLine(draw.MakeTableResults(operations.SortDateOfEmployment(dateMin, dateMax)));
                    Console.ReadKey();
                    break;

                case "exit":
                    if (read.ReadLine() == "XML")
                    {
                        Log = new LogXml();
                    }
                    if (read.ReadLine() == "BIN")
                    {
                        Log = new LogBinary();
                    }
                    Log.LogSave(operations.Employees);
                    return;
                }
                if (command.ToLower() != "add" && command.ToLower() != "del" && command.ToLower() != "see_all" && command.ToLower() != "find_emp" && command.ToLower() != "sort_salary" && command.ToLower() != "sort_date" && command.ToLower() != "exit")
                {
                    Help();
                }
            }
        }