Beispiel #1
0
 public void RegisterEmployee(string passport, string firstName, string secondName, string middleName,
                              string address, string phone, string experience)
 {
     if (passport.Equals(""))
     {
         throw new Exception("Данные о паспорте не могут быть пустыми");
     }
     else if (firstName.Equals(""))
     {
         throw new Exception("Имя не может быть пустым");
     }
     else if (secondName.Equals(""))
     {
         throw new Exception("Фамилия не может быть пустой");
     }
     else if (address.Equals(""))
     {
         throw new Exception("Адрес не может быть пустым");
     }
     try
     {
         ModelLayerMSSQL.Employee newEmpoyee = new ModelLayerMSSQL.Employee(passport, firstName, secondName,
                                                                            middleName, address, phone, experience.Equals("") ? 0 : Convert.ToUInt32(experience));
         //Если ни одна специальность не выбрана - выбрать все
         if (SelectedSpecialties.Count == 0)
         {
             List <ModelLayerMSSQL.Specialty> specialties = ModelLayerMSSQL.Specialty.GetAll();
             foreach (var item in specialties)
             {
                 SelectedSpecialties.Add(item.GetName());
             }
         }
         foreach (string item in SelectedSpecialties)
         {
             newEmpoyee.AddPriorSpecialty(item);
         }
         //Если ни один тип занятости не выбран - выбрать все
         if (SelectedEmploymentTypes.Count == 0)
         {
             Array list = Enum.GetValues(typeof(ModelLayerMSSQL.EmploymentType));
             foreach (var item in list)
             {
                 SelectedEmploymentTypes.Add(item.ToString());
             }
         }
         foreach (string item in SelectedEmploymentTypes)
         {
             newEmpoyee.AddPriorEmploymentType(
                 (ModelLayerMSSQL.EmploymentType)Enum.Parse(typeof(ModelLayerMSSQL.EmploymentType), item));
         }
     }
     catch (Exception)
     {
         throw new Exception("Ошибка базы данных при попытке добавить работника");
     }
 }
Beispiel #2
0
        public List <string> GetSelectedEmploymentTypes(string passportData)
        {
            SelectedEmploymentTypes.Clear();
            ModelLayerMSSQL.Employee employee = ModelLayerMSSQL.Employee.GetByPassport(passportData);
            List <ModelLayerMSSQL.EmploymentType> selectedEmploymentTypes = employee.GetPriorEmploymentTypes();

            //Преобразование списков из списка специальностей в список строк
            foreach (var item in selectedEmploymentTypes)
            {
                SelectedEmploymentTypes.Add(item.ToString());
            }
            return(SelectedEmploymentTypes);
        }
Beispiel #3
0
 public void ChangeEmployeeInfo(string oldPassport, string firstName, string middleName,
                                string secondName, string newPassport, string address, string phone, uint experience, string status)
 {
     ModelLayerMSSQL.Employee employee = ModelLayerMSSQL.Employee.GetByPassport(oldPassport);
     employee.ChangePassport(newPassport);
     employee.ChangeFirstName(firstName);
     employee.ChangeMiddleName(middleName);
     employee.ChangeSecondName(secondName);
     employee.ChangeAddress(address);
     employee.ChangePhone(phone);
     employee.ChangeExperience(experience);
     if (!status.Equals(""))
     {
         DateTime date = DateTime.Parse(status);
         employee.ChangeDateWhenJobFounded(date);
     }
 }
Beispiel #4
0
        public void SetSelectedEmploymentTypes(string passportData, List <string> employmentTypes)
        {
            SelectedEmploymentTypes.Clear();
            SelectedEmploymentTypes.AddRange(employmentTypes);
            ModelLayerMSSQL.Employee employee = ModelLayerMSSQL.Employee.GetByPassport(passportData);
            //Получить все возможные типы занятости
            List <string> allTypes = Enum.GetNames(typeof(ModelLayerMSSQL.EmploymentType)).ToList();

            //Удаление у работника ненужных типов занятости и установка нужных
            foreach (var item in allTypes)
            {
                employee.DeletePriorEmploymentType((ModelLayerMSSQL.EmploymentType)Enum.Parse(typeof(ModelLayerMSSQL.EmploymentType), item));
            }
            foreach (var item in SelectedEmploymentTypes)
            {
                employee.AddPriorEmploymentType((ModelLayerMSSQL.EmploymentType)Enum.Parse(typeof(ModelLayerMSSQL.EmploymentType), item));
            }
        }
Beispiel #5
0
        public void SetSelectedSpecialties(string passportData, List <string> specialties)
        {
            SelectedSpecialties.Clear();
            SelectedSpecialties.AddRange(specialties);
            ModelLayerMSSQL.Employee employee = ModelLayerMSSQL.Employee.GetByPassport(passportData);

            List <ModelLayerMSSQL.Specialty> allSpecialties = ModelLayerMSSQL.Specialty.GetAll();

            //Удаление у работника ненужных специальностей и установка нужных
            foreach (var item in allSpecialties)
            {
                employee.DeletePriorSpecialty(item);
            }
            foreach (var item in SelectedSpecialties)
            {
                employee.AddPriorSpecialty(item);
            }
        }
Beispiel #6
0
        public List <string[]> GetRemommendedVacancies(string passportToSuggest)
        {
            List <ModelLayerMSSQL.Vacancy> vacancies = ModelLayerMSSQL.Vacancy.GetAll();
            List <string[]> list = new List <string[]>();

            //Не используется фильтр и значит выводятся все вакансии
            if (passportToSuggest.Equals(""))
            {
                foreach (ModelLayerMSSQL.Vacancy current in vacancies)
                {
                    string[] tmp = new string[7];
                    tmp.SetValue(current.GetName(), 0);
                    tmp.SetValue(current.GetSpecialtyName(), 1);
                    tmp.SetValue(ModelLayerMSSQL.Employer.GetByItn(current.GetEmployerItn()).GetName(), 2);
                    tmp.SetValue((current.GetRequiredExperience()).ToString(), 3);
                    tmp.SetValue(current.GetEmploymentType().ToString(), 4);
                    tmp.SetValue(current.GetSalary().ToString(), 5);
                    tmp.SetValue(current.GetDescription(), 6);
                    list.Add(tmp);
                }
            }
            //Используется фильтр
            else
            {
                foreach (ModelLayerMSSQL.Vacancy current in vacancies)
                {
                    string[] tmp = new string[7];
                    tmp.SetValue(current.GetName(), 0);
                    tmp.SetValue(current.GetSpecialtyName(), 1);
                    tmp.SetValue(ModelLayerMSSQL.Employer.GetByItn(current.GetEmployerItn()).GetName(), 2);
                    tmp.SetValue((current.GetRequiredExperience()).ToString(), 3);
                    tmp.SetValue(current.GetEmploymentType().ToString(), 4);
                    tmp.SetValue(current.GetSalary().ToString(), 5);
                    tmp.SetValue(current.GetDescription(), 6);
                    //Получить работника из базы данных по паспорту
                    ModelLayerMSSQL.Employee employee = ModelLayerMSSQL.Employee.GetByPassport(passportToSuggest);
                    //Проверка на включение вакансии на основе специальности
                    List <ModelLayerMSSQL.Specialty> speciatlyList = employee.GetPriorSpecialties();
                    //Используется для того, чтобы исключить дублирование записи по разным критериям (специальности и типа занятости)
                    bool isItemAdded = false;
                    foreach (var item in speciatlyList)
                    {
                        //Если вакансия имеет такую же специальность как и работнику требуется
                        //добавить эту вакансию в список
                        if (current.GetSpecialtyName().Equals(item.GetName()))
                        {
                            list.Add(tmp);
                            isItemAdded = true;
                            break;
                        }
                    }
                    //Если текущая запись уже была добавлена нет необходимости
                    //проверять на соответствие ее другим критериям
                    if (isItemAdded)
                    {
                        continue;
                    }
                    //Проверка на включение вакансии на основе типа занятости
                    List <ModelLayerMSSQL.EmploymentType> employmentTypeList = employee.GetPriorEmploymentTypes();
                    foreach (var item in employmentTypeList)
                    {
                        //Если вакансия имеет такой же тип занятости как и работнику требуется
                        //добавить эту вакансию в список
                        if (current.GetEmploymentType() == item)
                        {
                            list.Add(tmp);
                            break;
                        }
                    }
                }
            }
            return(list);
        }