/// <summary>
 /// Создает вакансию, но не добавляет запись в базу данных. Необходимо вызвать метод SetEmployer()
 /// для записи данных в базу.
 /// </summary>
 /// <param name="name">Имя вакансии - уникально для каждого работодателя</param>
 /// <param name="specialtyName">Специальность для вакансии.
 /// Должно существовать в базе данных</param>
 /// <param name="type">Тип занятости для вакансии</param>
 /// <param name="description">Описание вакансии, может быть null</param>
 /// <param name="salary">Заработная плата</param>
 /// <param name="requiredExperience">Требуемый уровень для вакансии</param>
 public Vacancy(String name, String specialtyName, EmploymentType type,
                String description, uint salary, uint requiredExperience)
 {
     this.Name                  = name;
     this.CurrentSpecialty      = Specialty.GetByName(specialtyName); //Установка специальности с проверкой в базе
     this.CurrentEmploymentType = type;
     this.Description           = description;
     this.Salary                = salary;
     this.RequiredExperience    = requiredExperience;
     this.EmployerItn           = null;
 }
 /// <summary>
 /// Создает вакансию и добавляет информацию о ней в базу данных
 /// </summary>
 /// <param name="name">Имя вакансии - уникально для каждого работодателя</param>
 /// <param name="employerItn">ИНН работодателя, для которого создается вакансия.
 /// Работодатель должен существовать в базе данных</param>
 /// <param name="specialtyName">Имя специальности для вакансии. Должно существовать в базе данных</param>
 /// <param name="type">Тип занятости для вакансии</param>
 /// <param name="description">Описание вакансии, может быть null</param>
 /// <param name="salary">Заработная плата</param>
 /// <param name="requiredExperience">Требуемый уровень для вакансии</param>
 public Vacancy(String name, String employerItn, String specialtyName, EmploymentType type,
                String description, uint salary, uint requiredExperience)
 {
     this.Name                  = name;
     this.EmployerItn           = employerItn;                        //Проверка введенного имени работодателя
     this.CurrentSpecialty      = Specialty.GetByName(specialtyName); //Установка специальности с проверкой в базе
     this.CurrentEmploymentType = type;
     this.Description           = description;
     this.Salary                = salary;
     this.RequiredExperience    = requiredExperience;
     AddEntityToDB();
 }
 /// <summary>
 /// Сменить тип специальности для данной вакансии. Обычно не требуется
 /// Специальность на которую меняется должна существовать в базе данных
 /// </summary>
 /// <param name="specialtyName">Имя специальности существующее в базе данных</param>
 public void ChangeSpecialty(String specialtyName)
 {
     try
     {
         if (this.EmployerItn == null || this.EmployerItn.CompareTo("") == 0)
         {
             throw new Exception("Не задан работодатель");
         }
         //Получить объект по имени специальности
         Specialty specialty = Specialty.GetByName(specialtyName);
         String    query     = "UPDATE PERMANENT_USER.VACANCIES "
                               + "SET IDSPECIALTY = " + specialty.GetId() + " "
                               + "WHERE NAME = '" + this.Name + "' "
                               + "AND EMPLOYERITN = '" + this.EmployerItn + "'";
         ExecuteNonSelectQuery(query);
         this.CurrentSpecialty = specialty;
         Console.WriteLine("Тип специальности изменен для вакансии");
     }
     catch (Exception e)
     {
         Console.WriteLine("Невозможно сменить тип специальности для вакансии");
         throw e;
     }
 }
 /// <summary>
 /// Убрать у текущего работника дополнительную приоритетную специальность
 /// Имя специальности должно существовать в базе данных
 /// </summary>
 /// <param name="specialty">Имя специальности для удаления</param>
 public void DeletePriorSpecialty(String specialty)
 {
     DeletePriorSpecialty(Specialty.GetByName(specialty));
 }
 /// <summary>
 /// Добавить текущему работнику дополнительную приоритетную специальность
 /// На основе этих данных будут подбираться предложения
 /// Имя специальности должно существовать в базе данных
 /// </summary>
 /// <param name="specialty">Имя специальности для добавления</param>
 public void AddPriorSpecialty(String specialty)
 {
     AddPriorSpecialty(Specialty.GetByName(specialty));
 }