/// <summary>
        /// Queries for all SQL Azure servers bound to the associated Subscription at specific location
        /// </summary>
        public IEnumerable<AzureSQLServer> EnumerateAzureSQLServers(string serverLocation)
        {
            // Query SQL Azure for server info
            AzureManagementClient client = new AzureManagementClient(this.certificate, this.subscriptionId);
            AzureManagementResponse response = client.SubmitSQLAzureRequest(
                RequestType.GET,
                "1.0",
                "servers");

            // Create collection to return
            List<AzureSQLServer> servers = new List<AzureSQLServer>();

            // If there is no servers node in the result, return an empty collection
            XmlNode xmlServers = response.GetSQLXmlNode("Servers");
            if (xmlServers == null)
            {
                return servers;
            }

            // Populate our collection of servers
            foreach (XmlNode xmlServer in xmlServers.ChildNodes)
            {
                AzureSQLServer srv = new AzureSQLServer();

                // Get the server properties
                srv.Name = response.GetSQLXmlValue(xmlServer, "Name");
                srv.AdministratorLogin = response.GetSQLXmlValue(xmlServer, "AdministratorLogin");
                srv.Location = response.GetSQLXmlValue(xmlServer, "Location");

                // if the SQL server is at "serverLocation"
                if (srv.Location.CompareTo(serverLocation) == 0)
                {
                    // Add to the collection
                    servers.Add(srv);
                }
            }

            return servers;
        }
        /// <summary>
        /// Creates a SQL Azure server
        /// </summary>
        public string CreateAzureSQLServer(AzureSQLServer config)
        {
            string serverName = null;

            // Create a SQL Azure create server request from this template
            string azureRequest =
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" +
                "<Server xmlns=\"http://schemas.microsoft.com/sqlazure/2010/12/\">\r\n" +
                "<AdministratorLogin>{0}</AdministratorLogin>\r\n" +
                "<AdministratorLoginPassword>{1}</AdministratorLoginPassword>\r\n" +
                "<Location>{2}</Location>\r\n" +
                "</Server>";

            // Fill in the request template
            azureRequest = string.Format(
                azureRequest,
                config.AdministratorLogin,
                config.AdministratorLoginPassword,
                config.Location
                );

            // Submit the request
            AzureManagementClient client = new AzureManagementClient(this.certificate, this.subscriptionId);
            AzureManagementResponse response = client.SubmitSQLAzureRequestWithBody(
                RequestType.POST,
                azureRequest,
                "1.0",
                "servers"
                );

            XmlNode xml = response.GetSQLXmlNode("ServerName");
            serverName = xml.InnerText;
            return serverName;
        }