示例#1
0
        private void LoadRecords(AuthZone authZone, IReadOnlyList <DnsResourceRecord> records)
        {
            Dictionary <string, Dictionary <DnsResourceRecordType, List <DnsResourceRecord> > > groupedByDomainRecords = DnsResourceRecord.GroupRecords(records);

            foreach (KeyValuePair <string, Dictionary <DnsResourceRecordType, List <DnsResourceRecord> > > groupedByTypeRecords in groupedByDomainRecords)
            {
                if (authZone.Name.Equals(groupedByTypeRecords.Key, StringComparison.OrdinalIgnoreCase))
                {
                    foreach (KeyValuePair <DnsResourceRecordType, List <DnsResourceRecord> > groupedRecords in groupedByTypeRecords.Value)
                    {
                        authZone.LoadRecords(groupedRecords.Key, groupedRecords.Value);
                    }
                }
                else
                {
                    AuthZone zone = GetOrAddSubDomainZone(groupedByTypeRecords.Key);
                    if (zone is SubDomainZone)
                    {
                        foreach (KeyValuePair <DnsResourceRecordType, List <DnsResourceRecord> > groupedRecords in groupedByTypeRecords.Value)
                        {
                            zone.LoadRecords(groupedRecords.Key, groupedRecords.Value);
                        }

                        (zone as SubDomainZone).AutoUpdateState();
                    }
                }
            }
        }
示例#2
0
        private void LoadRecords(IReadOnlyList <DnsResourceRecord> records)
        {
            Dictionary <string, Dictionary <DnsResourceRecordType, List <DnsResourceRecord> > > groupedByDomainRecords = DnsResourceRecord.GroupRecords(records);

            foreach (KeyValuePair <string, Dictionary <DnsResourceRecordType, List <DnsResourceRecord> > > groupedByTypeRecords in groupedByDomainRecords)
            {
                AuthZone zone = GetOrAddZone(groupedByTypeRecords.Key);

                foreach (KeyValuePair <DnsResourceRecordType, List <DnsResourceRecord> > groupedRecords in groupedByTypeRecords.Value)
                {
                    zone.LoadRecords(groupedRecords.Key, groupedRecords.Value);
                }

                if (zone is SubDomainZone)
                {
                    (zone as SubDomainZone).AutoUpdateState();
                }
            }
        }