/// <summary> /// Функция возвращает объект пользователя инициализированный на основе данных из базы данных /// </summary> /// <param name="login">Логин пользователя из базы данных</param> /// <returns>Возвращает объект или null</returns> public static User GetByLogin(String login) { String query = "SELECT USERS.USERLOGIN, USERS.USERPASSWORD, USERROLES.ROLEID " + "FROM PERMANENT_USER.USERS, PERMANENT_USER.USERROLES " + "WHERE USERS.USERLOGIN = '******' " + "AND USERROLES.USERLOGIN = USERS.USERLOGIN"; User newUser = new User(); List <Object[]> list = newUser.ExecuteSelect(query); if (list.Count == 0) { return(null); } else { try { newUser.Login = list.ElementAt(0).ElementAt(0).ToString(); newUser.Password = list.ElementAt(0).ElementAt(1).ToString(); newUser.RoleId = Convert.ToInt32(list.ElementAt(0).ElementAt(2)); return(newUser); } catch (Exception e) { Console.WriteLine("Невозможно корректно преобразовать данные из базы"); throw e; } } }
/// <summary> /// Получить все объекты пользователей из базы данных /// </summary> /// <returns>Список пользователей</returns> public static List <User> GetAll() { try { String query = "SELECT * FROM PERMANENT_USER.USERS"; //Временный пользователь для вызова методов базового класса User temp = new User(); List <Object[]> list = temp.ExecuteSelect(query); if (list.Count == 0) { throw new Exception("Запрос не вернул ни одной строки"); } List <User> result = new List <User>(); foreach (Object[] currentUser in list) { User newUser = new User(); newUser.Login = currentUser.ElementAt(0).ToString(); newUser.Password = currentUser.ElementAt(1).ToString(); result.Add(newUser); } return(result); } catch (Exception e) { Console.WriteLine("Невозможно получить список пользователей"); throw e; } }
/// <summary> /// Функция ищет пользователя по логину /// Обратите внимание, что это статическая функция и может быть вызвана без создания объекта /// </summary> /// <param name="login">Логин пользователя для поиска в базе данных</param> /// <returns>true, если пользователь с таким логином существует</returns> public static Boolean CanFindByLogin(String login) { String query = "SELECT * FROM PERMANENT_USER.USERS " + "WHERE USERLOGIN = '******'"; try { User newUser = new User(); if (newUser.ExecuteSelect(query).Count != 0) { return(true); } else { return(false); } } catch (Exception e) { Console.WriteLine("Ошибка обращения к базе данных"); throw e; } }