public void changeUsername(int id, string oldUsername, string newUsername, IRestCallback cb) { if (!NetworkInterface.GetIsNetworkAvailable()) { cb.changeUsernameCallback(false, 0); return; } lock (this) { if (webRequest != null) { cb.changeUsernameCallback(false, 0); return; } } callback = cb; string request = String.Format(USERNAME_SERVICE + "/{0}", id); webRequest = (HttpWebRequest)WebRequest.Create(new Uri(request)); webRequest.Method = "POST"; IAsyncResult result = webRequest.BeginGetRequestStream(new AsyncCallback(requestChangeUserStream), new UserChangeRequest(oldUsername, newUsername)); timer = new Timer(new TimerCallback(requestChangeUserTimeout), callback, 15 * 1000, Timeout.Infinite); }
private void requestChangeUserCompleted(IAsyncResult result) { HttpWebRequest wr = webRequest; lock (this) { webRequest = null; if (timer != null) { timer.Dispose(); timer = null; } } if (wr == null || !wr.HaveResponse) { callback.changeUsernameCallback(false, 0); return; } try { HttpWebResponse webResponse = (HttpWebResponse)wr.EndGetResponse(result); if (webResponse.StatusCode != HttpStatusCode.OK) { callback.changeUsernameCallback(false, 0); return; } XmlSerializer xml = new XmlSerializer(typeof(UserChangeResponse)); UserChangeResponse ucr = (UserChangeResponse)xml.Deserialize(webResponse.GetResponseStream()); callback.changeUsernameCallback(true, ucr.result); } catch (WebException) { callback.changeUsernameCallback(false, 0); return; } }
public void changeUsername(int id, string oldUsername, string newUsername, IRestCallback cb) { if (!NetworkInterface.GetIsNetworkAvailable()) { cb.changeUsernameCallback(false, 0); return; } lock (this) { if (webRequest != null) { cb.changeUsernameCallback(false, 0); return; } } callback = cb; string request = String.Format(USERNAME_SERVICE + "/{0}", id); webRequest = (HttpWebRequest)WebRequest.Create(new Uri(request)); webRequest.Method = "POST"; IAsyncResult result = webRequest.BeginGetRequestStream(new AsyncCallback(requestChangeUserStream), new UserChangeRequest(oldUsername, newUsername)); timer = new Timer(new TimerCallback(requestChangeUserTimeout), callback, 15 * 1000, Timeout.Infinite); }