public static string AddServiceProviderAccount(string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                Console.WriteLine("The access token cannot be null or empty!");

                return(null);
            }

            ServicePointManager.ServerCertificateValidationCallback += delegate(object sender,
                                                                                X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
            {
                return(true);
            };
            ServicePointManager.Expect100Continue = false;

            userCredentials credentials = new userCredentials()
            {
                accessToken = accessToken
            };

            AddServiceProvider         request  = CreateAddServiceProviderRequest(new Random());
            AddServiceProviderResponse response = new AddServiceProviderResponse();

            ServiceProviderClient serviceProviderClient = new ServiceProviderClient("ServiceProviderPort");

            Console.WriteLine("Adding a Service Provider...");

            try
            {
                serviceProviderClient.AddServiceProvider(credentials, request, out response);
            }
            catch (Exception e)
            {
                //exception found, so we check the stack trc
                String trace = e.StackTrace;

                //write the stack trace to the console
                Console.WriteLine("{0} Exception caught.", e);

                //wait for the user to press a key before closing the console
                Console.Read();
            }
            finally
            {
                Console.WriteLine("The response for adding a Service Provider:");

                foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(response))
                {
                    string name  = descriptor.Name;
                    object value = descriptor.GetValue(response);
                    Console.WriteLine("\t{0}={1}", name, value);
                }

                Console.WriteLine();
            }

            return(response.ID);
        }
        private static AddServiceProvider CreateAddServiceProviderRequest(Random rand)
        {
            AddServiceProvider request = new AddServiceProvider();

            // Required fields
            request.name     = "ServiceProviderC#_" + rand.Next().ToString() + rand.Next().ToString();
            request.login    = "******" + rand.Next().ToString();
            request.password = "******";
            request.country  = "ro";

            // Optionally fields
            request.company = "Company_" + rand.Next().ToString();
            request.email   = CreateEmail(rand);

            return(request);
        }