Пример #1
0
        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;
            }
        }
Пример #2
0
        /// <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);
                });
            }
        }
Пример #3
0
        /// <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);
                });
            }
        }