/// <summary> /// Gets a collection of DNS zones. /// </summary> /// <param name="resourceGroup">The resource group.</param> /// <returns></returns> public IReadOnlyCollection<DnsZone> GetZones(ResourceGroup resourceGroup) { var response = _client.Zones.List(resourceGroup.Name, null); if (response.StatusCode != System.Net.HttpStatusCode.OK) { throw new DnsZoneException((int)response.StatusCode, "Could not retrieve DNS zones from the ARM."); } var zones = new List<DnsZone>(response.Zones.Count); foreach (var zone in response.Zones) { zones.Add(new DnsZone( name: zone.Name, id: zone.Id, currentRecords: zone.Properties.NumberOfRecordSets ?? -1, maxRecords: zone.Properties.MaxNumberOfRecordSets ?? -1, location: zone.Location, tags: zone.Tags, type: zone.Type)); } return zones.AsReadOnly(); }
/// <summary> /// Gets a DNS zone. /// </summary> /// <param name="resourceGroup">The resource group.</param> /// <param name="zoneName">Name of the zone.</param> /// <returns></returns> public DnsZone GetZone(ResourceGroup resourceGroup, string zoneName) { var response = _client.Zones.Get(resourceGroup.Name, zoneName); if (response.StatusCode != System.Net.HttpStatusCode.OK) { throw new DnsZoneException((int)response.StatusCode, string.Format("Zone '{0}' not found.", zoneName)); } return new DnsZone( name: response.Zone.Name, id: response.Zone.Id, location: response.Zone.Location, tags: response.Zone.Tags, type: response.Zone.Type, currentRecords: response.Zone.Properties.NumberOfRecordSets ?? -1, maxRecords: response.Zone.Properties.MaxNumberOfRecordSets ?? -1); }