/// <summary> /// Called when a response is received for a pending account registration. /// </summary> /// <param name="result">Response data</param> private void AsyncRegisterAccountResponse(IAsyncResult result) { RegistrationStatusCode status = RegistrationStatusCode.ServerError; var request = result.AsyncState as HttpWebRequest; try { var response = (HttpWebResponse)request.EndGetResponse(result); if (HttpStatusCode.Created == response.StatusCode) { status = RegistrationStatusCode.Ok; } } catch (WebException ex) { using (HttpWebResponse response = (HttpWebResponse)ex.Response) { switch (response.StatusCode) { case HttpStatusCode.BadRequest: status = RegistrationStatusCode.MalformedData; break; case HttpStatusCode.Forbidden: status = RegistrationStatusCode.UsernameTaken; break; case HttpStatusCode.NotAcceptable: status = RegistrationStatusCode.WeakCredentials; break; case HttpStatusCode.InternalServerError: status = RegistrationStatusCode.ServerError; break; } } } OnRegisterAccountResponse(new RegistrationResponse(status)); }
internal RegistrationResponse(RegistrationStatusCode status) { Status = status; }