/// <summary> /// Возвращает объект "Специальность" созданный на основе данных в базе /// Вызывается исключение если специальности в базе не существует /// </summary> /// <param name="name">Имя специальности</param> /// <returns>Объект специальности</returns> public static Specialty GetByName(String name) { try { Specialty specialty = new Specialty(); String query = "SELECT * FROM PERMANENT_USER.SPECIALTIES " + "WHERE SPECIALTY = '" + name + "'"; List <Object[]> list = specialty.ExecuteSelect(query); if (list.Count == 0) { throw new Exception("Запрос вернул 0 строк"); } specialty.Id = Convert.ToInt32(list.ElementAt(0).ElementAt(0)); specialty.Name = list.ElementAt(0).ElementAt(1).ToString(); return(specialty); } catch (Exception e) { Console.WriteLine("Невозможно получить объект специальности по имени"); throw e; } }
/// <summary> /// Проверяет существует ли специальность в базе данных с именем name /// </summary> /// <param name="name">true если запись в базе данных существует</param> /// <returns></returns> public static bool CanGetByName(String name) { try { Specialty specialty = new Specialty(); String query = "SELECT * FROM PERMANENT_USER.SPECIALTIES " + "WHERE SPECIALTY = '" + name + "'"; if (specialty.ExecuteSelect(query).Count > 0) { return(true); } else { return(false); } } catch (Exception e) { Console.WriteLine("Ошибка при поиске специальности"); throw e; } }
/// <summary> /// Сменить тип специальности для данной вакансии и внести изменения в базу данных. /// Обычно данный метод вызывать не требуется /// </summary> /// <param name="specialty">Специальность для данной вакансии</param> public void ChangeSpecialty(Specialty specialty) { try { if (this.EmployerItn == null || this.EmployerItn.CompareTo("") == 0) { throw new Exception("Не задан работодатель"); } 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="id">id специальности</param> /// <returns>true если запись специальности с id существует в базе данных</returns> public static bool CanGetByID(int id) { try { Specialty specialty = new Specialty(); String query = "SELECT * FROM PERMANENT_USER.SPECIALTIES " + "WHERE ID = " + id; List <Object[]> list = specialty.ExecuteSelect(query); if (list.Count > 0) { return(true); } else { return(false); } } 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)); }