示例#1
0
        internal static MserveWebService CreateDefaultMserveWebService(string domainController, bool batchMode, int initialChunkSize)
        {
            ITopologyConfigurationSession rootOrgSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(domainController, true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 200, "CreateDefaultMserveWebService", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\SystemConfiguration\\EdgeSyncMservConnector.cs");
            EdgeSyncServiceConfig         config         = null;
            string            clientToken       = null;
            ADSite            localSite         = null;
            ADOperationResult adoperationResult = ADNotificationAdapter.TryRunADOperation(delegate()
            {
                localSite = rootOrgSession.GetLocalSite();
                if (localSite == null)
                {
                    throw new TransientException(DirectoryStrings.CannotGetLocalSite);
                }
                config      = rootOrgSession.Read <EdgeSyncServiceConfig>(localSite.Id.GetChildId("EdgeSyncService"));
                clientToken = EdgeSyncMservConnector.GetMserveWebServiceClientTokenFromEndpointConfig(rootOrgSession);
            }, 3);

            if (!adoperationResult.Succeeded)
            {
                throw adoperationResult.Exception;
            }
            if (config == null)
            {
                throw new MserveException(string.Format("No EdgeSync configuration found. Site {0}", localSite.DistinguishedName));
            }
            if (string.IsNullOrEmpty(clientToken))
            {
                throw new InvalidOperationException(string.Format("clientToken from Endpoint configuration is null or empty . Site {0}", localSite.DistinguishedName));
            }
            List <EdgeSyncMservConnector> connectors = new List <EdgeSyncMservConnector>();

            if (!ADNotificationAdapter.TryReadConfigurationPaged <EdgeSyncMservConnector>(() => rootOrgSession.FindPaged <EdgeSyncMservConnector>(config.Id, QueryScope.SubTree, null, null, 0), delegate(EdgeSyncMservConnector connector)
            {
                connectors.Add(connector);
            }, 3, out adoperationResult))
            {
                throw adoperationResult.Exception;
            }
            if (connectors.Count == 0)
            {
                throw new InvalidOperationException(string.Format("No MServ configuration found. Site {0}", localSite.DistinguishedName));
            }
            MserveWebService mserveWebService = new MserveWebService(connectors[0].ProvisionUrl.AbsoluteUri, connectors[0].SettingUrl.AbsoluteUri, connectors[0].RemoteCertificate, clientToken, batchMode);

            mserveWebService.Initialize(initialChunkSize);
            return(mserveWebService);
        }
示例#2
0
        public List <ADServer> FindAllGlobalCatalogsInLocalSite()
        {
            ITopologyConfigurationSession topologyConfigurationSession = this.CreateConfigNcSession();
            ADSite          localSite = topologyConfigurationSession.GetLocalSite();
            List <ADServer> list      = new List <ADServer>();

            if (localSite != null)
            {
                ReadOnlyCollection <ADServer> readOnlyCollection = this.FindAllGlobalCatalogs(false);
                foreach (ADServer adserver in readOnlyCollection)
                {
                    if (adserver.Site.Equals(localSite.Id))
                    {
                        list.Add(adserver);
                    }
                }
            }
            return(list);
        }