public Task UpdateRecordSetAsync(FlatRecordSet set, List <FlatTargetRecord> addresses) { // If I ever find someone doing this in prod code, I'll be unhappy :P string[] s = set.ID.Split('/'); RecordType recordType = set.RecordType.ToAzureDnsRecordSet(); RecordSet record = BuildRecordSet(set, addresses); // ETag will throw here return(_dnsClient.RecordSets.UpdateAsync(s[4], s[8], s[10], recordType, record, set.ETag)); }
private static RecordSet BuildRecordSet(FlatRecordSet set, List <FlatTargetRecord> addresses) { // Need to assert address length, and record type RecordSet record = new RecordSet(); if (set.RecordType == FlatRecordType.A) { record.ARecords = addresses.Select(x => new ARecord(x.Address)).ToList(); } else if (set.RecordType == FlatRecordType.AAAA) { record.AaaaRecords = addresses.Select(x => new AaaaRecord(x.Address)).ToList(); } if (set.TTL > 0) { long newTTL = addresses.Select(x => x.TTL ?? -1).Concat(new[] { set.TTL }).Where(x => x > 0).Min(); record.TTL = newTTL; } return(record); }