Exemple #1
0
        /// <summary>
        /// Called when a response is received for a pending account login.
        /// </summary>
        /// <param name="result">Response data</param>
        private void AsyncLoginAccountResponse(IAsyncResult result)
        {
            LoginStatusCode status = LoginStatusCode.ServerError;

            Account.AccountLoginResponseModel responseModel = null;

            var request = result.AsyncState as HttpWebRequest;

            try
            {
                var response = (HttpWebResponse)request.EndGetResponse(result);

                if (HttpStatusCode.OK == response.StatusCode)
                {
                    // Grab the account data.
                    var reader = new StreamReader(response.GetResponseStream());

                    responseModel = JsonConvert.DeserializeObject <Account.AccountLoginResponseModel>(reader.ReadToEnd());

                    status = LoginStatusCode.Ok;
                }
            }
            catch (WebException ex)
            {
                using (HttpWebResponse response = (HttpWebResponse)ex.Response)
                {
                    switch (response.StatusCode)
                    {
                    case HttpStatusCode.BadRequest:
                        status = LoginStatusCode.MalformedData;
                        break;

                    case HttpStatusCode.NotFound:
                        status = LoginStatusCode.InvalidCredentials;
                        break;

                    case HttpStatusCode.InternalServerError:
                        status = LoginStatusCode.ServerError;
                        break;
                    }
                }
            }

            OnLoginAccountResponse(new LoginResponse(status, responseModel));
        }
Exemple #2
0
 internal LoginResponse(LoginStatusCode status, Account.AccountLoginResponseModel model)
 {
     Status = status;
     Model  = model;
 }