private List<DnsRecord> GetDnsRecords(string zoneId)
{
List<DnsRecord> records = new List<DnsRecord>();
bool finishedPaginating = false;
int page = 1;
HttpClient client = new HttpClient();
while (!finishedPaginating)
{
var request = CreateRequest(HttpMethod.Get, $"{string.Format(ListRecordsUrl, zoneId)}?page={page}");
var result = client.SendAsync(request).GetAwaiter().GetResult();
if (result.IsSuccessStatusCode)
{
var content = result.Content.ReadAsStringAsync().GetAwaiter().GetResult();
var dnsResult = JsonConvert.DeserializeObject<DnsResult>(content);
records.AddRange(dnsResult.Result);
if (dnsResult.ResultInfo.Page == dnsResult.ResultInfo.TotalPages)
{
finishedPaginating = true;
}
else
{
page = page + 1;
}
}
else
{
throw new Exception($"Could not get DNS records for zone {zoneId}. Result: {result.StatusCode} - {result.Content.ReadAsStringAsync().GetAwaiter().GetResult()}");
}
}
return records;
}