public virtual void AddZoneRecord(string zoneName, DnsRecord record) { try { string name = record.RecordName; if (String.IsNullOrEmpty(name)) { name = "."; } if (record.RecordType == DnsRecordType.A) { ps.Add_DnsServerResourceRecordA(zoneName, name, record.RecordData); } else if (record.RecordType == DnsRecordType.AAAA) { ps.Add_DnsServerResourceRecordAAAA(zoneName, name, record.RecordData); } else if (record.RecordType == DnsRecordType.CNAME) { ps.Add_DnsServerResourceRecordCName(zoneName, name, record.RecordData); } else if (record.RecordType == DnsRecordType.MX) { ps.Add_DnsServerResourceRecordMX(zoneName, name, record.RecordData, (ushort)record.MxPriority); } else if (record.RecordType == DnsRecordType.NS) { ps.Add_DnsServerResourceRecordNS(zoneName, name, record.RecordData); } else if (record.RecordType == DnsRecordType.TXT) { ps.Add_DnsServerResourceRecordTXT(zoneName, name, record.RecordData); } else if (record.RecordType == DnsRecordType.SRV) { ps.Add_DnsServerResourceRecordSRV(zoneName, name, record.RecordData, (ushort)record.SrvPort, (ushort)record.SrvPriority, (ushort)record.SrvWeight); } else { throw new Exception("Unknown record type"); } } catch (Exception ex) { // log exception Log.WriteError(ex); } }