/// <summary> /// Find UserInfo by multiple parameters /// </summary> /// <param name="what">string of what you are looking for</param> /// <param name="by">type by which the search should be done (userID, username, email, nickname)</param> /// <returns>Returns list of Profile object and it's id</returns> public User GetUser(string what, FindUserBy by) { string stmt; switch (by) { case FindUserBy.userID: stmt = "SELECT * FROM Users WHERE userID = @0"; break; case FindUserBy.username: stmt = "SELECT * FROM Users WHERE username = @0;"; break; case FindUserBy.email: stmt = "SELECT * FROM Users WHERE email = @0;"; break; case FindUserBy.nickname: stmt = "SELECT * FROM Users WHERE nickname = @0;"; break; default: throw new Exception("'by' parameter must be of type FindUserBy"); } try { using (SqlCommand cmd = new SqlCommand(stmt, connection)) { cmd.Parameters.AddWithValue("@0", what); using (SqlDataReader reader = cmd.ExecuteReader()) { if (reader.HasRows) { reader.Read(); User user = new User { UserId = Int32.Parse(reader["userID"].ToString()), Username = reader["username"].ToString(), Email = reader["email"].ToString(), Nickname = reader["nickname"].ToString() }; return(user); } return(null); } } } catch (Exception) { return(null); } }
public User GetUser(string userID, FindUserBy by) { return(dbUser.GetUser(userID, by)); }