/// <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)); }
internal LoginResponse(LoginStatusCode status, Account.AccountLoginResponseModel model) { Status = status; Model = model; }