Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
 internal RegistrationResponse(RegistrationStatusCode status)
 {
     Status = status;
 }