Example #1
0
        public override List <DnsZoneRecord> GetZoneRecords(string domainName)
        {
            var _tmp = new List <DnsZoneRecord>();

            using (SqlConnection _conn = new SqlConnection(connectionString))
            {
                _conn.Open();

                using (SqlCommand _cmd = new SqlCommand(@"SELECT HostDomain.DomainName, 
                                                            CASE WHEN DNSRecord.RecordType = 3 
                                                            THEN 'A' WHEN DNSRecord.RecordType = 5 
                                                            THEN 'CNAME' WHEN DNSRecord.RecordType = 4 
                                                            THEN 'MX' WHEN DNSRecord.RecordType = 6 
                                                            THEN 'CNAME'END AS RecordType, 
                                                                DNSRecord.RecordName, DNSRecord.RecordData, DNSRecord.RecordPreference
                                                        FROM  DNSRecord INNER JOIN HostDomain ON DNSRecord.DomainId = HostDomain.DomainId 
                                                            WHERE (HostDomain.DomainName = @NAME)", _conn))
                {
                    _cmd.Parameters.AddWithValue("@NAME", domainName);

                    using (SqlDataReader _read = _cmd.ExecuteReader())
                    {
                        while (_read.Read())
                        {
                            var da = new DnsZoneRecord();
                            da.name     = DataExtensions.GetColumnValue <string>(_read, "RecordName");
                            da.type     = DataExtensions.GetColumnValue <string>(_read, "RecordType");
                            da.value    = DataExtensions.GetColumnValue <string>(_read, "RecordData");
                            da.priority = DataExtensions.GetColumnValue <int>(_read, "RecordPreference");

                            _tmp.Add(da);
                        }
                    }
                }

                _conn.Close();
            }

            return(_tmp);
        }