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); }
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); }