public UserBase GetUser(int id) { UserBase user = new UserBase(); logger.Info("Запрос пользователя №{0}...", id); string sql = "SELECT * FROM users WHERE users.id = @id"; MySqlDataReader rdr = null; try { mysqlProvider.CheckConnectionAlive(); MySqlCommand cmd = new MySqlCommand(sql, mysqlProvider.DbConnection); cmd.Parameters.AddWithValue("@id", id); rdr = cmd.ExecuteReader(); var valueReader = new DBValueReader(rdr); rdr.Read(); user.Id = valueReader.GetInt("id", 0); user.Name = valueReader.GetString("name"); user.Login = valueReader.GetString("login"); user.Deactivated = valueReader.GetBoolean("deactivated", false); user.Email = valueReader.GetString("email"); user.IsAdmin = valueReader.GetBoolean("admin", false); user.Description = valueReader.GetString("description"); logger.Info("Ok"); return(user); } catch (Exception ex) { logger.Error(ex, "Ошибка получения информации о пользователе!"); throw ex; } finally { if (rdr != null) { rdr.Close(); } } }
public Dictionary <string, string> GetExtraFieldValues(int userId, IEnumerable <string> extraFieldNames) { var result = new Dictionary <string, string>(); logger.Info("Запрос дополнительных полей пользователя №{0}...", userId); string sql = "SELECT * FROM users WHERE users.id = @id"; MySqlDataReader rdr = null; try { mysqlProvider.CheckConnectionAlive(); MySqlCommand cmd = new MySqlCommand(sql, mysqlProvider.DbConnection); cmd.Parameters.AddWithValue("@id", userId); rdr = cmd.ExecuteReader(); var valueReader = new DBValueReader(rdr); rdr.Read(); foreach (var fieldName in extraFieldNames) { result.Add(fieldName, valueReader.GetString(fieldName, null)); } logger.Info("Ok"); return(result); } catch (Exception ex) { logger.Error(ex, "Ошибка получения информации о пользователе!"); throw ex; } finally { if (rdr != null) { rdr.Close(); } } }
private IEnumerable <string> LoadUserPermissions(int userId) { logger.Info("Загрузка прав пользователя №{0}...", userId); if (userId == 0) { logger.Info("Попытка загрузить права неизвестного пользователя"); return(new string[0]); } string sql = "SELECT * FROM permission_preset_user WHERE user_id = @id"; MySqlDataReader rdr = null; try { MySqlCommand cmd = new MySqlCommand(sql, mysqlProvider.DbConnection); cmd.Parameters.AddWithValue("@id", userId); rdr = cmd.ExecuteReader(); var valueReader = new DBValueReader(rdr); var result = new List <string>(); while (rdr.Read()) { result.Add(valueReader.GetString("permission_name")); } return(result); } catch (Exception ex) { return(new string[0]); } finally { if (rdr != null) { rdr.Close(); } } }