/// <summary>
        /// Возвращает список всех специальностей существующих в базе данных
        /// </summary>
        /// <returns>Список всех записей (специальностей) в БД</returns>
        public static List <Specialty> GetAll()
        {
            String           query  = "SELECT * FROM PERMANENT_USER.SPECIALTIES";
            List <Specialty> result = new List <Specialty>();

            try
            {
                //Временный объект без инициализации полей и другой ерунды только для доступа к базовым функциям
                Specialty       temp    = new Specialty();
                List <Object[]> objects = temp.ExecuteSelect(query);
                foreach (Object[] item in objects)
                {
                    Specialty current = new Specialty();
                    //Попытка преобразования объекта к специальности
                    current.Id   = Convert.ToInt32(item[0]); //id
                    current.Name = item[1].ToString();       //name
                    //Добавить в результирующий список
                    result.Add(current);
                }

                return(result);
            }
            catch (Exception)
            {
                Console.WriteLine("Невозможно получить список специальностей");
                throw;
            }
        }
 /// <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="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;
     }
 }