Пример #1
0
        public Dictionary <string, string> GetDomains()
        {
            Dictionary <string, string> managedDomains = null;

            if (m_domainCache != null)
            {
                managedDomains = m_domainCache.Get(m_agentName);
                if (managedDomains != null)
                {
                    return(managedDomains);
                }
            }

            using (DomainManagerClient client = CreateClient())
            {
                Domain[] domains = client.GetAgentDomains(m_agentName, EntityStatus.Enabled);
                m_managedDomains = new Dictionary <string, string>(MailStandard.Comparer);    // Case-IN-sensitive
                for (int i = 0; i < domains.Length; ++i)
                {
                    string domain = domains[i].Name;
                    m_managedDomains[domain] = domain;
                }
            }

            if (m_domainCache != null)
            {
                m_domainCache.Put(m_agentName, m_managedDomains);
            }


            return(m_managedDomains);
        }
Пример #2
0
        void CreateClients()
        {
            m_domainClient      = m_settings.DomainManager.CreateDomainManagerClient();
            m_addressClient     = m_settings.AddressManager.CreateAddressManagerClient() as AddressManagerClient;
            m_certificateClient = m_settings.CertificateManager.CreateCertificateStoreClient();
            m_dnsRecordClient   = m_settings.DnsRecordManager.CreateDnsRecordManagerClient();
            m_anchorClient      = m_settings.AnchorManager.CreateAnchorStoreClient();
            m_bundleClient      = m_settings.BundleManager.CreateBundleStoreClient();

            if (m_settings.PropertyManager != null)
            {
                m_propertyClient = m_settings.PropertyManager.CreatePropertyManagerClient() as PropertyManagerClient;
            }
            if (m_settings.BlobManager != null)
            {
                m_blobClient = m_settings.BlobManager.CreateBlobManagerClient();
            }
            if (m_settings.MdnMonitorManager != null)
            {
                m_mdnMoniotrClient = m_settings.MdnMonitorManager.CreateMdnMonitorClient() as MdnMonitorClient;
            }
            if (m_settings.CertPolicyManager != null)
            {
                m_certPolicyClient = m_settings.CertPolicyManager.CreateCertPolicyStoreClient() as CertPolicyStoreClient;
            }
        }
Пример #3
0
        public static void RemoveDomain(this DomainManagerClient client, MailAddress address)
        {
            if (address == null)
            {
                throw new ArgumentNullException("address");
            }

            client.RemoveDomain(address.Host);
        }
Пример #4
0
        internal Domain[] GetDomains(string[] domainNames)
        {
            Debug.Assert(m_settings.HasDomainManagerService);

            using (DomainManagerClient client = m_settings.DomainManagerService.CreateDomainManagerClient())
            {
                return(client.GetDomains(domainNames, EntityStatus.Enabled));
            }
        }
Пример #5
0
        public static Domain GetDomain(this DomainManagerClient client, MailAddress address)
        {
            if (address == null)
            {
                throw new ArgumentNullException("address");
            }

            return(client.GetDomain(address.Host));
        }
Пример #6
0
        public static Domain GetDomain(this DomainManagerClient client, string domainName, EntityStatus?status)
        {
            if (string.IsNullOrEmpty(domainName))
            {
                throw new ArgumentException("value was null or empty", "domainName");
            }

            Domain[] domains = client.GetDomains(new string[] { domainName }, status);
            if (domains.IsNullOrEmpty())
            {
                return(null);
            }

            return(domains[0]);
        }
Пример #7
0
        public static IEnumerable <Domain> EnumerateDomains(this DomainManagerClient client, int chunkSize)
        {
            if (chunkSize < 1)
            {
                throw new ArgumentException("value was less than 1", "chunkSize");
            }

            string lastDomain = null;

            Domain[] domains;
            while (true)
            {
                domains = client.EnumerateDomains(lastDomain, chunkSize);
                if (domains.IsNullOrEmpty())
                {
                    yield break;
                }
                for (int i = 0; i < domains.Length; ++i)
                {
                    yield return(domains[i]);
                }
                lastDomain = domains[domains.Length - 1].Name;
            }
        }
Пример #8
0
 public static Domain GetDomain(this DomainManagerClient client, string domainName)
 {
     return(client.GetDomain(domainName, null));
 }
Пример #9
0
        public static bool DomainExists(this DomainManagerClient client, string domainName)
        {
            Domain domain = client.GetDomain(domainName);

            return(domain != null);
        }