internal void AddOrReplaceUserPreferredDC(Fqdn fqdn, out ADObjectId domain, out Fqdn replacedDc)
        {
            ADServerInfo serverInfoFromFqdn = ADServerSettings.GetServerInfoFromFqdn(fqdn, ConnectionType.DomainController);

            domain     = new ADObjectId(serverInfoFromFqdn.WritableNC);
            replacedDc = null;
            Fqdn fqdn2;

            if (this.userServerPerDomain.TryGetValue(domain, out fqdn2) && string.Equals(fqdn2, serverInfoFromFqdn.Fqdn))
            {
                return;
            }
            lock (this.dictLock)
            {
                Dictionary <ADObjectId, Fqdn> dictionary = new Dictionary <ADObjectId, Fqdn>(this.userServerPerDomain);
                this.userServerPerDomain.TryGetValue(domain, out replacedDc);
                dictionary[domain]             = fqdn;
                this.userServerPerDomain       = dictionary;
                this.cachedUserPreferredDCList = new MultiValuedProperty <Fqdn>(this.userServerPerDomain.Values);
            }
        }
 internal void SetUserConfigurationDomainController(Fqdn fqdn)
 {
     ADServerSettings.GetServerInfoFromFqdn(fqdn, ConnectionType.DomainController);
     this.userConfigurationDomainController = fqdn;
 }
 internal void SetUserPreferredGlobalCatalog(Fqdn fqdn)
 {
     ADServerSettings.GetServerInfoFromFqdn(fqdn, ConnectionType.GlobalCatalog);
     this.userPreferredGlobalCatalog = fqdn;
 }