private void ProcessResponseMessages(int traceId, QueryList queryList, GetMailTipsResponseMessageType response) { if (response.ResponseMessages == null) { Application.ProxyWebRequestTracer.TraceError((long)traceId, "{0}: Proxy web request returned NULL GetMailTipsResponseMessageType.ResponseMessages", new object[] { TraceContext.Get() }); queryList.SetResultInAllQueries(new MailTipsQueryResult(new NoEwsResponseException())); return; } for (int i = 0; i < response.ResponseMessages.Length; i++) { MailTipsResponseMessageType mailTipsResponseMessageType = response.ResponseMessages[i]; BaseQuery[] array = queryList.FindByEmailAddress(queryList[i].Email.Address); foreach (MailTipsQuery mailTipsQuery in array) { if (mailTipsResponseMessageType == null) { Application.ProxyWebRequestTracer.TraceError <object, Microsoft.Exchange.InfoWorker.Common.Availability.EmailAddress>((long)traceId, "{0}: Proxy web request returned NULL MailTipsResponseMessageType for mailbox {1}.", TraceContext.Get(), queryList[i].Email); mailTipsQuery.SetResultOnFirstCall(new MailTipsQueryResult(new NoEwsResponseException())); } else if (mailTipsResponseMessageType.ResponseCode != ResponseCodeType.NoError) { Application.ProxyWebRequestTracer.TraceError <object, Microsoft.Exchange.InfoWorker.Common.Availability.EmailAddress, ResponseCodeType>((long)traceId, "{0}: Proxy web request returned error MailTipsResponseMessageType for mailbox {1}. Error coee is {2}.", TraceContext.Get(), queryList[i].Email, mailTipsResponseMessageType.ResponseCode); mailTipsQuery.SetResultOnFirstCall(new MailTipsQueryResult(new ErrorEwsResponseException(mailTipsResponseMessageType.ResponseCode))); } else { MailTips mailTips = mailTipsResponseMessageType.MailTips; if (mailTips == null) { Application.ProxyWebRequestTracer.TraceDebug <object, Microsoft.Exchange.InfoWorker.Common.Availability.EmailAddress>((long)traceId, "{0}: Proxy web request returned NULL MailTips for mailbox {1}.", TraceContext.Get(), queryList[i].Email); mailTipsQuery.SetResultOnFirstCall(new MailTipsQueryResult(new NoMailTipsInEwsResponseMessageException())); } else { MailTips mailTips2 = MailTipsApplication.ParseWebServiceMailTips(mailTips); MailTipsQueryResult resultOnFirstCall = new MailTipsQueryResult(mailTips2); mailTipsQuery.SetResultOnFirstCall(resultOnFirstCall); } } } } }