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);
        }
Ejemplo n.º 2
0
        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>());
        }