REturns the available ip addresses from a service management request
        internal override void Parse()
        {
            /*
             * <?xml version="1.0" encoding="utf-8"?>
            <AddressAvailabilityResponse xmlns=”http://schemas.microsoft.com/windowsazure”>
              <IsAvailable>indicator-of-availability</IsAvailable>
              <AvailableAddresses>
            <AvailableAddress>ip-address-1</AvailableAddress>
            <AvailableAddress>ip-address-2</AvailableAddress>
            <AvailableAddress>ip-address-3</AvailableAddress>
            <AvailableAddress>ip-address-4</AvailableAddress>
            <AvailableAddress>ip-address-5</AvailableAddress>
              </AvailableAddresses>
            </AddressAvailabilityResponse>*/
            var availability = new AvailableIpAddresses {AvailableIps = new List<IPAddress>()};
            var rootElement = Document.Element(GetSchema() + "AddressAvailabilityResponse");
            if (rootElement.Element(GetSchema() + "IsAvailable") != null)
            {
                availability.IpIsAvailable = bool.Parse(rootElement.Element(GetSchema() + "IsAvailable").Value);
            }
            if (!availability.IpIsAvailable)
            {
                foreach (XElement address in rootElement.Element(GetSchema() + "AvailableAddresses").Elements(GetSchema() + "AvailableAddress"))
                {
                    availability.AvailableIps.Add(IPAddress.Parse(address.Value));
                }
            }

            CommandResponse = availability;
        }
コード例 #2
0
 /// <summary>
 /// Initially used via a response callback for commands which expect a async response 
 /// </summary>
 /// <param name="webResponse">the HttpWebResponse that will be sent back to the user from the request</param>
 protected override void ResponseCallback(HttpWebResponse webResponse)
 {
     // get the cloud service deployments
     IpAddressCheck = Parse(webResponse, "AddressAvailabilityResponse", new AddressAvailabilityResponseParser(null));
     IpAddressCheck.RequestedIp = IPAddress.Parse(IpAddress);
     SitAndWait.Set();
 }
 public AddressAvailabilityResponseParser(XDocument response)
     : base(response)
 {
     CommandResponse = new AvailableIpAddresses();
 }