public IServiceClient <ISourceDataProvider> CreateSourceDataProvider(Uri serviceEndpoint, CancellationToken cancellationToken) { EwsClient ewsClient = new EwsClient(serviceEndpoint, this.serviceCallingContextFactory.EwsCallingContext, cancellationToken); if (ConstantProvider.RebindWithAutoDiscoveryEnabled && ConstantProvider.RebindAutoDiscoveryUrl != null && this.serviceCallingContextFactory.AutoDiscoverCallingContext != null) { AutoDiscoverClient autoDiscoverClient = (AutoDiscoverClient)this.CreateAutoDiscoverClient(ConstantProvider.RebindAutoDiscoveryUrl, cancellationToken); autoDiscoverClient.AutoDiscoverInternalUrlOnly = ConstantProvider.RebindAutoDiscoveryInternalUrlOnly; ewsClient.AutoDiscoverInterface = autoDiscoverClient.FunctionalInterface; } return(ewsClient); }
public IList <ISource> GetFinalSources(string searchObjectName, string searchQuery, string executingUserPrimarySmtpAddress, Uri discoveryUserUri) { List <ISource> list = new List <ISource>(); DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, this.recipientSession.SessionSettings, 930, "GetFinalSources", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\MailboxSearch\\Common\\MailboxSearchConfigurationProvider.cs"); if (discoveryUserUri != null) { EwsClient ewsClient = new EwsClient(discoveryUserUri, new ServerToServerEwsCallingContext(null)); string empty = string.Empty; List <SourceInformation.SourceConfiguration> list2 = ewsClient.FunctionalInterface.RetrieveSearchConfiguration(searchObjectName, out empty, executingUserPrimarySmtpAddress); int num = 0; foreach (SourceInformation.SourceConfiguration sourceConfiguration in list2) { string name = string.Empty; string id = string.Empty; bool flag = sourceConfiguration.Name.StartsWith("\\"); if (flag) { name = sourceConfiguration.Id; id = sourceConfiguration.Name; } else { name = sourceConfiguration.Name; id = sourceConfiguration.Id; } string legacyDN = flag ? executingUserPrimarySmtpAddress : sourceConfiguration.LegacyExchangeDN; SourceMailbox item = new SourceMailbox(id, name, legacyDN, discoveryUserUri, searchQuery); list.Add(item); if ((long)(++num) > (long)((ulong)this.MaxMailboxesToSearch)) { throw new SearchTooManyMailboxesException((int)this.MaxMailboxesToSearch); } } return(list); } return(new List <ISource>()); }