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