private void DisplayRegistrationResult(ResponseType serverResponse) { switch (serverResponse) { case ResponseType.Successful: ConnectionResult.Show(Languages.AppResources.operationsOnRegistration_RegistrationSuccess, Languages.AppResources.operationsOnRegistration_RegistratedSuccessfully, MessageBoxButton.OK); SaveRegistrationData(RegistrationInstance); try { LeaveRegistrationEvent(this, new EventArgs()); } catch (NullReferenceException) { } break; case ResponseType.Failed: ConnectionResult.Show(Languages.AppResources.operationsOnRegistration_RegistrationFailed, Languages.AppResources.operationsOnRegistration_PhoneNotValidIMEIExist, MessageBoxButton.OK); break; case ResponseType.ResponseIsNull: ConnectionResult.Show(Languages.AppResources.operationsOnRegistration_RegistrationFailed, Languages.AppResources.operationsOnRegistration_ServerNotResponding, MessageBoxButton.OK); break; default: break; } }
/// <summary> /// Starts registration process. /// </summary> public void Register() { Busy.IsEnabled = true; string commandUrl = CreateRequestUrl(RegistrationInstance.PhoneNumber, RegistrationInstance.Imei, RegistrationInstance.ServerUrl); try { var request = WebRequest.Create(commandUrl); var result = (IAsyncResult)request.BeginGetResponse(RegisterCallback, request); } catch (WebException) { Deployment.Current.Dispatcher.BeginInvoke(() => { Busy.IsEnabled = false; ConnectionResult.Show(Languages.AppResources.operationsOnRegistration_ConnectionProblem, Languages.AppResources.operationsOnRegistration_CheckConnection, MessageBoxButton.OK); }); } catch (UriFormatException) { Deployment.Current.Dispatcher.BeginInvoke(() => { Busy.IsEnabled = false; ConnectionResult.Show(Languages.AppResources.operationsOnRegistration_ConnectionProblem, Languages.AppResources.operationsOnRegistration_ValidServerAddress, MessageBoxButton.OK); }); } }
/// <summary> /// Callback used to process server response. /// </summary> /// <param name="result">Server response state.</param> public void RegisterCallback(IAsyncResult result) { try { var request = (WebRequest)result.AsyncState; var response = request.EndGetResponse(result); ResponseType responseStatus; string serverOutput = string.Empty; using (var stream = response.GetResponseStream()) using (var reader = new StreamReader(stream)) { var contents = reader.ReadToEnd(); responseStatus = ProccessServerOutput(contents, Encoding.UTF8); Deployment.Current.Dispatcher.BeginInvoke(() => { Busy.IsEnabled = false; DisplayRegistrationResult(responseStatus); }); } } catch (WebException) { Deployment.Current.Dispatcher.BeginInvoke(() => { Busy.IsEnabled = false; ConnectionResult.Show(Languages.AppResources.operationsOnRegistration_ConnectionProblem, Languages.AppResources.operationsOnRegistration_CheckConnectionServerAddress, MessageBoxButton.OK); }); } }