/// <summary> /// Signs a user up for Scribd. Doing so will log the /// current user profile out and replace it with this one. /// </summary> /// <param name="userName">Username to associate with your Scribd account</param> /// <param name="password">Password to associate with your Scribd account</param> /// <param name="email">Your email address</param> /// <param name="name">Your real name</param> /// <returns>True on success</returns> public static bool Signup(string userName, string password, string email, string name) { UserEventArgs _args = new UserEventArgs(); if (BeforeSignUp != null) { _args.Success = false; _args.User.UserName = userName; _args.User.Name = name; } if (!_args.Cancel) { using (Request _request = new Request()) { _request.MethodName = "user.signup"; _request.Parameters.Add("username", userName); _request.Parameters.Add("password", password); _request.Parameters.Add("email", email); _request.Parameters.Add("name", name); User cachedUser = Service.Instance.InternalUser; Service.Instance.InternalUser = null; using (Response _response = Service.Instance.PostRequest(_request)) { Service.Instance.InternalUser = cachedUser; // Parse response User _result = new User(); if (_response != null && _response.HasChildNodes && _response.ErrorList.Count < 1) { XmlNodeList _list = _response.GetElementsByTagName("rsp"); if (_list.Count > 0) { foreach (XmlNode _node in _list) { _result.Name = _node.SelectSingleNode("name").InnerText.Trim(); _result.SessionKey = _node.SelectSingleNode("session_key").InnerText.Trim(); _result.UserId = int.Parse(_node.SelectSingleNode("user_id").InnerText.Trim()); _result.UserName = _node.SelectSingleNode("username").InnerText.Trim(); _result.m_isLoggedIn = true; // Notify subscribers of sign-up success. _args.Success = true; _args.User = _result; if (User.AfterSignUp != null) { User.AfterSignUp(null, _args); } return(true); } } } } } } _args.Success = false; if (User.AfterSignUp != null) { User.AfterSignUp(null, _args); } return(false); }