public static GetSearchableMailboxesResults GetSearchableMailboxes(ISearchPolicy policy, GetSearchableMailboxesInputs input) { Recorder.Trace(2L, TraceType.InfoTrace, "Controller.GetSearchableMailboxes Input:", input); Recorder.Record record = policy.Recorder.Start("GetSearchableMailboxes", TraceType.InfoTrace, true); Executor executor = new Executor(policy, typeof(InitializeGetSearchablebleMailbox)) { Concurrency = policy.ExecutionSettings.DiscoverySynchronousConcurrency }; Executor executor2 = executor; executor2 = executor2.Chain(new Executor(policy, typeof(DirectoryQueryFormatting)) { Concurrency = policy.ExecutionSettings.DiscoverySynchronousConcurrency }).Chain(new Executor(policy, typeof(DirectoryLookup)) { Concurrency = policy.ExecutionSettings.DiscoverySynchronousConcurrency }).Chain(new BatchedExecutor(policy, typeof(CompleteGetSearchableMailbox)) { Concurrency = policy.ExecutionSettings.DiscoverySynchronousConcurrency, BatchSize = policy.ExecutionSettings.DiscoveryMaxAllowedExecutorItems, BatchKeyFactory = BatchedExecutor.BatchByCount }); Recorder.Trace(2L, TraceType.InfoTrace, "Controller.GetSearchableMailboxes Start"); GetSearchableMailboxesResults result = executor.Process(input) as GetSearchableMailboxesResults; policy.Recorder.End(record); return(result); }
public override void Process(IList <SearchSource> item) { Recorder.Trace(4L, TraceType.InfoTrace, "CompleteGetSearchableMailbox.Process Item:", item); GetSearchableMailboxesResults getSearchableMailboxesResults = new GetSearchableMailboxesResults(); getSearchableMailboxesResults.Sources.AddRange(item); base.Executor.EnqueueNext(getSearchableMailboxesResults); }