TShockAPI.DB.UserManager.GetUser C# (CSharp) Method

GetUser() public method

Gets a user object by a user object.
public GetUser ( User user ) : User
user User The user object to search by.
return User
        public User GetUser(User user)
        {
            bool multiple = false;
            string query;
            string type;
            object arg;
            if (0 != user.ID)
            {
                query = "SELECT * FROM Users WHERE ID=@0";
                arg = user.ID;
                type = "id";
            }
            else
            {
                query = "SELECT * FROM Users WHERE Username=@0";
                arg = user.Name;
                type = "name";
            }

            try
            {
                using (var result = _database.QueryReader(query, arg))
                {
                    if (result.Read())
                    {
                        user = LoadUserFromResult(user, result);
                        // Check for multiple matches
                        if (!result.Read())
                            return user;
                        multiple = true;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new UserManagerException("GetUser SQL returned an error (" + ex.Message + ")", ex);
            }
            if (multiple)
                throw new UserManagerException(String.Format("Multiple users found for {0} '{1}'", type, arg));

            throw new UserNotExistException(user.Name);
        }