/// <summary> /// Проверяет может ли быть найдена запись по паспорту в базе данных или нет. /// </summary> /// <param name="passport">Серия и номер паспорта без пробела</param> /// <returns>True если запись в базе данных существует</returns> public static Boolean CanFindByPassport(String passport) { String query = "SELECT * FROM PERMANENT_USER.EMPLOYEE " + "WHERE PASSPORT = '" + passport + "'"; Employee newEmployee = new Employee(); if (newEmployee.ExecuteSelect(query).Count != 0) { return(true); } else { return(false); } }
/// <summary> /// Получает список всех работников из базы даных /// </summary> /// <returns>Список объектов (работников)</returns> public static List <Employee> GetAll() { try { String query = "SELECT * FROM PERMANENT_USER.EMPLOYEE"; //Временный объект для получения функционала базового класса Employee temp = new Employee(); List <Object[]> list = temp.ExecuteSelect(query); if (list.Count == 0) { throw new Exception("Невозможно получить список работников"); } List <Employee> result = new List <Employee>(); foreach (Object[] currentObject in list) { Employee newEmployee = new Employee(); newEmployee.PassportNumber = currentObject.ElementAt(0).ToString(); newEmployee.FirstName = currentObject.ElementAt(1).ToString(); newEmployee.SecondName = currentObject.ElementAt(2).ToString(); newEmployee.MiddleName = currentObject.ElementAt(3).ToString(); newEmployee.Address = currentObject.ElementAt(4).ToString(); newEmployee.Phone = currentObject.ElementAt(5).ToString(); if (currentObject.ElementAt(6).ToString().CompareTo("") == 0) { newEmployee.HasFoundJob = false; } else { newEmployee.HasFoundJob = true; newEmployee.DateWhenWorkFounded = (DateTime)currentObject.ElementAt(6); } newEmployee.Experience = Convert.ToUInt32(currentObject.ElementAt(7)); result.Add(newEmployee); } return(result); } catch (Exception e) { Console.WriteLine("Невозможно получить список работников"); throw e; } }
/// <summary> /// Пытается найти человека по номеру паспорта, создает объект и возвращает ссылку на него. /// Обратите внимание, что это статический метод, может использоваться без создания объекта /// </summary> /// <param name="passport">Серия и номер паспорта без пробела</param> /// <returns>Возвращает новый инициализированный объект Employee на основе данных из базы данных</returns> /// <returns>Или возвращает ссылку на null если данных нет в базе данных</returns> public static Employee GetByPassport(String passport) { String query = "SELECT * FROM PERMANENT_USER.EMPLOYEE " + "WHERE PASSPORT = '" + passport + "'"; Employee newEmployee = new Employee(); List <Object[]> list = newEmployee.ExecuteSelect(query); //Ожидается, что будет возвращен один объект if (list.Count == 0) { throw new Exception("Невозможно найти запись в базе данных"); } else { try { newEmployee.PassportNumber = (String)list.ElementAt(0).ElementAt(0); newEmployee.FirstName = (String)list.ElementAt(0).ElementAt(1); newEmployee.SecondName = (String)list.ElementAt(0).ElementAt(2); newEmployee.MiddleName = (String)list.ElementAt(0).ElementAt(3); newEmployee.Address = (String)list.ElementAt(0).ElementAt(4); newEmployee.Phone = (String)list.ElementAt(0).ElementAt(5); if (list.ElementAt(0).ElementAt(6).ToString().CompareTo("") == 0) { newEmployee.HasFoundJob = false; } else { newEmployee.HasFoundJob = true; newEmployee.DateWhenWorkFounded = (DateTime)list.ElementAt(0).ElementAt(6); } newEmployee.Experience = Convert.ToUInt32(list.ElementAt(0).ElementAt(7)); return(newEmployee); } catch (Exception e) { Console.WriteLine("Невозможно корректно преобразовать данные из базы"); throw e; } } }