コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }