/// <summary> /// Returns an TUser given the user's id. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public TUser GetUserById(string userId) { TUser user = null; string commandText = "SELECT * FROM \"AspNetUsers\" WHERE \"Id\" = @id"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@id", userId } }; var rows = _database.Query(commandText, parameters); if (rows != null && rows.Count == 1) { var row = rows[0]; user = (TUser)Activator.CreateInstance(typeof(TUser)); user.Id = row["Id"]; user.UserName = row["UserName"]; user.PasswordHash = string.IsNullOrEmpty(row["PasswordHash"]) ? null : row["PasswordHash"]; user.SecurityStamp = string.IsNullOrEmpty(row["SecurityStamp"]) ? null : row["SecurityStamp"]; user.Email = string.IsNullOrEmpty(row["Email"]) ? null : row["Email"]; user.EmailConfirmed = row["EmailConfirmed"] == "True"; } return(user); }
/// <summary> /// Returns an TUser given the user's id. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public TUser GetUserById(string userId) { string commandText = "SELECT * FROM " + fullTableName + " WHERE " + fieldID.Quoted() + " = @id"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@id", userId } }; var rows = _database.Query(commandText, parameters); return(loadUser(rows)); }
/// <summary> /// Retorna uma lista de Roles do Usuário em questão /// </summary> /// <param name="userId">Código do Usuário</param> /// <returns></returns> public List <string> FindByUserId(string userId) { List <string> roles = new List <string>(); //TODO: This probably does not work, and may need testing. string commandText = "select AspRoles." + RoleTable.fieldName.Quoted() + " from " + UserTable <IdentityUser> .fullTableName + " AspUsers" + " INNER JOIN " + fullTableName + " AspUserRoles " + " ON AspUsers." + UserTable <IdentityUser> .fieldID.Quoted() + " = AspUserRoles." + fieldUserID.Quoted() + " INNER JOIN " + RoleTable.fullTableName + " AspRoles " + " ON AspUserRoles." + fieldRoleID.Quoted() + " = AspRoles." + RoleTable.fieldId.Quoted() + " where AspUsers." + UserTable <IdentityUser> .fieldID.Quoted() + " = @userId"; /*select AspNetRoles.Name from AspNetUsers * inner join AspNetUserRoles * ON AspNetUsers.ID = AspNetUserRoles.UserID * inner join AspNetRoles * ON aspNetUserRoles.RoleID = AspNetRoles.ID * where AspNetUser.ID = :id */ Dictionary <string, object> parameters = new Dictionary <string, object>(); parameters.Add("@userId", userId); var rows = _database.Query(commandText, parameters); foreach (var row in rows) { roles.Add(row[fieldRoleID]); } return(roles); }
/// <summary> /// Returns a list of user's roles. /// /// Correct by Slawomir Figiel /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public List <string> FindByUserId(string userId) { List <string> roles = new List <string>(); //TODO: This probably does not work, and may need testing. //string commandText = "SELECT AspNetRoles . Name FROM AspNetUsers , AspNetRoles , AspNetUserRoles "; // commandText += "WHERE AspNetUsers . Id = AspNetUserRoles . UserId AND AspNetUserRoles . RoleId = AspNetRoles . Id ;"; //string commandText = "SELECT Name " + " FROM AspNetRoles " + " INNER JOIN AspNetUserRoles ON AspNetUserRoles . RoleId = AspNetRoles . Id " // + " WHERE UserId = @userId"; string commandText = "SELECT AspNetRoles . Name FROM AspNetRoles JOIN AspNetUserRoles ON AspNetUserRoles . RoleId = AspNetRoles . Id WHERE AspNetUserRoles . UserId = @userId;"; Dictionary <string, object> parameters = new Dictionary <string, object>(); parameters.Add("@userId", userId); var rows = _database.Query(commandText, parameters); foreach (var row in rows) { roles.Add(row["name"]); } return(roles); }
/// <summary> /// Returns a list of user's roles. /// /// Correct by Slawomir Figiel /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public List <string> FindByUserId(string userId) { List <string> roles = new List <string>(); //TODO: This probably does not work, and may need testing. //string commandText = "SELECT \"AspNetRoles\".\"Name\" FROM \"AspNetUsers\", \"AspNetRoles\", \"AspNetUserRoles\" "; // commandText += "WHERE \"AspNetUsers\".\"Id\" = \"AspNetUserRoles\".\"UserId\" AND \"AspNetUserRoles\".\"RoleId\" = \"AspNetRoles\".\"Id\";"; //string commandText = "SELECT \"Name\"" + " FROM \"AspNetRoles\" " + " INNER JOIN \"AspNetUserRoles\" ON \"AspNetUserRoles\".\"RoleId\" = \"AspNetRoles\".\"Id\" " // + " WHERE \"UserId\" = @userId"; string commandText = "SELECT \"AspNetRoles\".\"Name\" FROM \"AspNetRoles\" JOIN \"AspNetUserRoles\" ON \"AspNetUserRoles\".\"RoleId\" = \"AspNetRoles\".\"Id\" WHERE \"AspNetUserRoles\".\"UserId\" = @userId;"; Dictionary <string, object> parameters = new Dictionary <string, object>(); parameters.Add("@userId", userId); var rows = _database.Query(commandText, parameters); foreach (var row in rows) { roles.Add(row["Name"]); } return(roles); }
/// <summary> /// Returns all users. Created by: Slawomir Figiel /// </summary> /// <param name="userId"></param> /// <returns></returns> /// public List <TUser> GetAllUsers() { List <TUser> users = new List <TUser>(); string commandText = "SELECT * FROM \"AspNetUsers\""; var rows = _database.Query(commandText, new Dictionary <string, object>()); foreach (var row in rows) { TUser user = (TUser)Activator.CreateInstance(typeof(TUser)); user.Id = row["Id"]; user.UserName = row["UserName"]; user.PasswordHash = string.IsNullOrEmpty(row["PasswordHash"]) ? null : row["PasswordHash"]; user.SecurityStamp = string.IsNullOrEmpty(row["SecurityStamp"]) ? null : row["SecurityStamp"]; user.Email = string.IsNullOrEmpty(row["Email"]) ? null : row["Email"]; user.EmailConfirmed = row["EmailConfirmed"] == "True"; users.Add(user); } return(users); }
/// <summary> /// Returns all role names. /// /// Created by: Slawomir Figiel /// </summary> /// <returns>Role name.</returns> public List <IdentityRole> GetAllRoleNames() { List <IdentityRole> roles = new List <IdentityRole>(); string commandText = "SELECT * FROM AspNetRoles"; var rows = _database.Query(commandText, new Dictionary <string, object>()); foreach (var row in rows) { IdentityRole r = new IdentityRole(row["Name"], row["Id"]); roles.Add(r); } return(roles); }
/// <summary> /// Returns a ClaimsIdentity instance given a userId. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public ClaimsIdentity FindByUserId(string userId) { ClaimsIdentity claims = new ClaimsIdentity(); string commandText = "SELECT * FROM \"AspNetUserClaims\" WHERE \"UserId\" = @userId"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@UserId", userId } }; var rows = _database.Query(commandText, parameters); foreach (var row in rows) { Claim claim = new Claim(row["ClaimType"], row["ClaimValue"]); claims.AddClaim(claim); } return(claims); }
/// <summary> /// Returns a list of user's logins. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public List <UserLoginInfo> FindByUserId(string userId) { List <UserLoginInfo> logins = new List <UserLoginInfo>(); string commandText = "SELECT * FROM \"AspNetUserLogins\" WHERE \"UserId\" = @userId"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@userId", userId } }; var rows = _database.Query(commandText, parameters); foreach (var row in rows) { var login = new UserLoginInfo(row["LoginProvider"], row["ProviderKey"]); logins.Add(login); } return(logins); }
/// <summary> /// Returns a list of user's logins. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public List <UserLoginInfo> FindByUserId(string userId) { List <UserLoginInfo> logins = new List <UserLoginInfo>(); string commandText = "SELECT * FROM " + fullTableName + " WHERE " + fielduserID.Quoted() + " = @userId"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@userId", userId } }; var rows = _database.Query(commandText, parameters); foreach (var row in rows) { var login = new UserLoginInfo(row[fieldLoginProvider], row[fieldProviderKey]); logins.Add(login); } return(logins); }
/// <summary> /// Returns a ClaimsIdentity instance given a userId. /// </summary> /// <param name="userId">The user's id.</param> /// <returns></returns> public ClaimsIdentity FindByUserId(string userId) { ClaimsIdentity claims = new ClaimsIdentity(); string commandText = "SELECT * FROM " + fullTableName + " WHERE " + fieldUserID.Quoted() + " = @userId"; Dictionary <string, object> parameters = new Dictionary <string, object>() { { "@userId", userId } }; var rows = _database.Query(commandText, parameters); foreach (var row in rows) { Claim claim = new Claim(row[fieldClaimType], row[fieldClaimValue]); claims.AddClaim(claim); } return(claims); }