public InternalGetMessageTrackingReportResponse GetMessageTrackingReport(GetMessageTrackingReportRequestTypeWrapper request, TimeSpan timeout) { this.ewsBinding.Timeout = (int)Math.Min(timeout.TotalMilliseconds, 2147483647.0); GetMessageTrackingReportResponseMessageType messageTrackingReport = this.ewsBinding.GetMessageTrackingReport(request.PrepareEWSRequest(this.serverVersion)); MessageTrackingReportId messageTrackingReportId; if (!MessageTrackingReportId.TryParse(request.WrappedRequest.MessageTrackingReportId, out messageTrackingReportId)) { throw new ArgumentException("Invalid MessageTrackingReportId, caller should have validated"); } return(InternalGetMessageTrackingReportResponse.Create(messageTrackingReportId.Domain, messageTrackingReport)); }
public GetMessageTrackingQuery(SmtpAddress proxyRecipient, DirectoryContext directoryContext, GetMessageTrackingReportRequestTypeWrapper request, ExchangeVersion minVersionRequested, TimeSpan timeout) : base(directoryContext.ClientContext, null, CasTraceEventType.MessageTracking, GetMessageTrackingApplication.MessageTrackingIOCompletion, InfoWorkerMessageTrackingPerformanceCounters.CurrentRequestDispatcherRequests) { MessageTrackingReportId messageTrackingReportId = null; if (!MessageTrackingReportId.TryParse(request.WrappedRequest.MessageTrackingReportId, out messageTrackingReportId)) { throw new ArgumentException("MessageTrackingReportId invalid"); } this.directoryContext = directoryContext; string address = ServerCache.Instance.GetOrgMailboxForDomain(messageTrackingReportId.Domain).ToString(); this.fakeRecipientQueryResults = MessageTrackingApplication.CreateFakeRecipientQueryResult(address); this.proxyRecipient = proxyRecipient; this.request = request; this.minVersionRequested = minVersionRequested; base.Timeout = timeout; }
public GetMessageTrackingApplication(GetMessageTrackingReportRequestTypeWrapper request, ExchangeVersion ewsRequestedVersion) : base(false, false, ewsRequestedVersion) { this.traceId = this.GetHashCode(); this.request = request; }
InternalGetMessageTrackingReportResponse IClientProxy.GetMessageTrackingReport(GetMessageTrackingReportRequestTypeWrapper request, TimeSpan timeout) { GetMessageTrackingQuery getMessageTrackingQuery = new GetMessageTrackingQuery(this.proxyRecipient, this.directoryContext, request, this.ewsVersionRequested, timeout); GetMessageTrackingQueryResult getMessageTrackingQueryResult = getMessageTrackingQuery.Execute(); if (getMessageTrackingQueryResult == null) { TraceWrapper.SearchLibraryTracer.TraceError(this.GetHashCode(), "Empty result in Request Dispatcher FindMessageTrackingQuery.Execute", new object[0]); return(null); } Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.GetMessageTrackingReportResponseMessageType response = getMessageTrackingQueryResult.Response; MessageTrackingReportId messageTrackingReportId; if (!MessageTrackingReportId.TryParse(request.WrappedRequest.MessageTrackingReportId, out messageTrackingReportId)) { throw new ArgumentException("Invalid MessageTrackingReportId, caller should have validated"); } return(InternalGetMessageTrackingReportResponse.Create(messageTrackingReportId.Domain, response)); }