public void Run()
        {
            if (!ReadFromConfigFile() || !ValidateSubscriptionId() || !ValidateCertificate() || !this.Validate())
            {
                Console.WriteLine("There was an error processing this command!");
                return;
            }

            var serviceManagement = ServiceManagementHelper.CreateServiceManagementChannel("WindowsAzureEndPoint", CSManageCommand.Certificate);

            Console.WriteLine("Using certificate: " + CSManageCommand.Certificate.SubjectName.Name);

            try
            {
                string         trackingId        = null;
                HttpStatusCode?statusCode        = null;
                string         statusDescription = null;

                using (OperationContextScope scope = new OperationContextScope((IContextChannel)serviceManagement))
                {
                    try
                    {
                        this.PerformOperation(serviceManagement);
                        if (WebOperationContext.Current.IncomingResponse != null)
                        {
                            trackingId        = WebOperationContext.Current.IncomingResponse.Headers[Constants.OperationTrackingIdHeader];
                            statusCode        = WebOperationContext.Current.IncomingResponse.StatusCode;
                            statusDescription = WebOperationContext.Current.IncomingResponse.StatusDescription;
                            Console.WriteLine("Operation ID: {0}", trackingId);
                        }
                    }
                    catch (CommunicationException ce)
                    {
                        ServiceManagementError error          = null;
                        HttpStatusCode         httpStatusCode = 0;
                        string operationId;
                        ServiceManagementHelper.TryGetExceptionDetails(ce, out error, out httpStatusCode, out operationId);
                        if (error == null)
                        {
                            Console.WriteLine(ce.Message);
                        }
                        else
                        {
                            Console.WriteLine("HTTP Status Code: {0}", httpStatusCode);
                            Console.WriteLine("Error Message: {0}", error.Message);
                            Console.WriteLine("Operation Id: {0}", operationId);
                        }
                    }
                    finally
                    {
                        if (statusCode != null)
                        {
                            Console.WriteLine("HTTP Status Code: {0}", statusCode);
                            Console.WriteLine("StatusDescription: {0}", statusDescription);
                        }
                    }
                }
                if (trackingId != null && statusCode != null && statusCode == HttpStatusCode.Accepted)
                {
                    Console.WriteLine("Waiting for async operation to complete:");
                    WaitForAsyncOperation(serviceManagement, trackingId);
                }
            }
            catch (TimeoutException)
            {
                Console.WriteLine("There was an error processing this command.");
            }
        }