protected override GetMessageTrackingQueryResult ExecuteInternal() { base.RequestLogger.AppendToLog <string>("MessageTrackingRequest", "Start"); GetMessageTrackingApplication getMessageTrackingApplication = new GetMessageTrackingApplication(this.request, this.minVersionRequested); GetMessageTrackingQueryResult result; using (RequestDispatcher requestDispatcher = new RequestDispatcher(base.RequestLogger)) { try { IList <RecipientData> recipientQueryResults; if (this.proxyRecipient != SmtpAddress.Empty) { recipientQueryResults = MessageTrackingApplication.CreateRecipientQueryResult(this.directoryContext, this.queryPrepareDeadline, this.proxyRecipient.ToString()); } else { recipientQueryResults = this.fakeRecipientQueryResults; } QueryGenerator queryGenerator = new QueryGenerator(getMessageTrackingApplication, base.ClientContext, base.RequestLogger, requestDispatcher, this.queryPrepareDeadline, this.requestProcessingDeadline, recipientQueryResults); BaseQuery[] queries = queryGenerator.GetQueries(); requestDispatcher.Execute(this.requestProcessingDeadline, base.HttpResponse); GetMessageTrackingBaseQuery getMessageTrackingBaseQuery = (GetMessageTrackingBaseQuery)queries[0]; if (getMessageTrackingBaseQuery.Result == null) { result = null; } else { if (getMessageTrackingBaseQuery.Result.ExceptionInfo != null) { throw getMessageTrackingBaseQuery.Result.ExceptionInfo; } GetMessageTrackingQueryResult getMessageTrackingQueryResult = new GetMessageTrackingQueryResult(); getMessageTrackingQueryResult.Response = getMessageTrackingBaseQuery.Result.Response; base.RequestLogger.AppendToLog <string>("MessageTrackingRequest", "Exit"); result = getMessageTrackingQueryResult; } } finally { requestDispatcher.LogStatistics(base.RequestLogger); getMessageTrackingApplication.LogThreadsUsage(base.RequestLogger); } } return(result); }
private void ProcessResponseMessages(int traceId, QueryList queryList, GetMessageTrackingReportResponseMessageType response) { if (response == null) { Application.ProxyWebRequestTracer.TraceError((long)traceId, "{0}: Proxy web request returned NULL GetMessageTrackingReportResponseMessageType", new object[] { TraceContext.Get() }); return; } foreach (BaseQuery baseQuery in ((IEnumerable <BaseQuery>)queryList)) { GetMessageTrackingBaseQuery getMessageTrackingBaseQuery = (GetMessageTrackingBaseQuery)baseQuery; getMessageTrackingBaseQuery.SetResultOnFirstCall(new GetMessageTrackingBaseQueryResult { Response = response }); } }
public override BaseQuery CreateFromIndividual(RecipientData recipientData, LocalizedException exception) { return(GetMessageTrackingBaseQuery.CreateFromIndividual(recipientData, exception)); }
public override BaseQuery CreateFromIndividual(RecipientData recipientData) { return(GetMessageTrackingBaseQuery.CreateFromIndividual(recipientData)); }