/// <summary>
 /// Creates an empty VNET to add address ranges and subnets 
 /// </summary>
 public string AddSubnetToAddressRange(string networkName, string addressRange, string subnetName)
 {
     var networkResponse = GetAvailableVirtualNetworks();
     var vNetSpecific = networkResponse.FirstOrDefault(vnet => vnet.Name == networkName);
     var subnetAddress = VirtualNetworkingUtils.NextAvailableSubnet(addressRange, vNetSpecific);
     if (subnetAddress == null)
     {
         throw new FluentManagementException("there is no space in the selected address range to create a new subnet", "VirtualNetworkClient");
     }
     var subnetTag = new SubnetTag()
     {
         NetworkName = networkName,
         AddressPrefix = addressRange,
         SubnetAddressRange = subnetAddress,
         SubnetName = subnetName
     };
     string xml = AddXmlSubnetToExistingNetworkingDefinition(subnetTag);
     var command = new SetVirtualNetworkConfigCommand(xml)
     {
         SubscriptionId = SubscriptionId,
         Certificate = ManagementCertificate
     };
     command.Execute();
     return xml;
 }
        /// <summary>
        /// Removes a subnet from the network configuration 
        /// </summary>
        public void RemoveSubnet(string networkName, string subnetName)
        {
            var networkResponse = GetAllNetworkingConfig();
            var document = XDocument.Parse(networkResponse);

            var networks = document.Descendants(Namespaces.NetworkingConfig + "VirtualNetworkSite");
            var vnet = networks.FirstOrDefault(network => network.Attribute("name").Value == networkName);
            if (vnet == null)
            {
                throw new FluentManagementException("VirtualNetworkClient", "Virtual Network not found");
            }

            var subnets = vnet.Descendants(Namespaces.NetworkingConfig + "Subnet");
            var subnet = subnets.FirstOrDefault(element => element.Attribute("name").Value == subnetName);

            if (subnet == null)
            {
                throw new FluentManagementException("VirtualNetworkClient", "Subnet not found");
            }
            subnet.Remove();

            var command = new SetVirtualNetworkConfigCommand(document.ToStringFullXmlDeclaration())
            {
                SubscriptionId = SubscriptionId,
                Certificate = ManagementCertificate
            };
            command.Execute();
        }