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);
        }
Example #2
0
 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
         });
     }
 }
Example #3
0
 public override BaseQuery CreateFromIndividual(RecipientData recipientData, LocalizedException exception)
 {
     return(GetMessageTrackingBaseQuery.CreateFromIndividual(recipientData, exception));
 }
Example #4
0
 public override BaseQuery CreateFromIndividual(RecipientData recipientData)
 {
     return(GetMessageTrackingBaseQuery.CreateFromIndividual(recipientData));
 }