private void ProcessRemote(IList <FanoutParameters> item)
        {
            Recorder.Trace(4L, TraceType.InfoTrace, "FanoutSearchMailboxes.ProcessRemote Item:", item);
            FanoutParameters first = item.First <FanoutParameters>();

            FanoutParameters.FanoutState state = new FanoutParameters.FanoutState();
            state.Proxy      = SearchFactory.Current.GetProxy(base.Policy, first);
            state.Parameters = item;
            SearchMailboxesRequest request = state.Proxy.Create <SearchMailboxesRequest, SearchMailboxesResponse>();

            ((SearchMailboxesInputs)base.Executor.Context.Input).UpdateRequest(request, from t in item
                                                                               select t.Source);
            this.ProtectedExecute(state, delegate
            {
                Recorder.Trace(4L, TraceType.InfoTrace, new object[]
                {
                    "FanoutSearchMailboxes.ProtectedExecute.Method Uri:",
                    first.GroupId.Uri,
                    "Request:",
                    request
                });
                state.Proxy.ExchangeService.OnResponseHeadersCaptured += delegate(WebHeaderCollection headers)
                {
                    this.Policy.Recorder.Merge(first.GroupId.Uri.Host, headers);
                };
                this.Policy.Recorder.WriteTimestampHeader(state.Proxy.ExchangeService.HttpHeaders);
                return(state.Proxy.Execute <SearchMailboxesRequest, SearchMailboxesResponse>(request));
            });
        }
Beispiel #2
0
 internal void UpdateRequest(SearchMailboxesRequest request, IEnumerable <SearchSource> sources)
 {
     request.Language                 = this.Language;
     request.PageDirection            = DiscoveryEwsClient.GetPageDirection(this.PagingInfo.Direction);
     request.PageItemReference        = ((this.PagingInfo.SortValue != null) ? this.PagingInfo.SortValue.ToString() : null);
     request.PageSize                 = this.PagingInfo.PageSize;
     request.PerformDeduplication     = this.PagingInfo.ExcludeDuplicates;
     request.PreviewItemResponseShape = DiscoveryEwsClient.GetPreviewItemResponseShape(this.PagingInfo.BaseShape, this.PagingInfo.AdditionalProperties);
     request.SearchQueries            = this.GetSearchQueries(sources);
     request.ResultType               = DiscoveryEwsClient.GetSearchType(this.SearchType);
     if (request.SearchQueries.Count > 0 && request.SearchQueries[0].MailboxSearchScopes.Length > 0)
     {
         request.SearchQueries[0].MailboxSearchScopes[0].ExtendedAttributes.Add(new ExtendedAttribute("SearchType", this.SearchType.ToString()));
     }
     request.SortByProperty = (this.PagingInfo.OriginalSortByReference ?? DiscoveryEwsClient.GetSortbyProperty(this.PagingInfo.SortBy));
     request.SortOrder      = DiscoveryEwsClient.GetSortDirection(this.PagingInfo.SortBy);
 }