// Token: 0x0600017E RID: 382 RVA: 0x0000A5F4 File Offset: 0x000087F4 private AssistantTaskContext DoWork(AssistantTaskContext context) { ELCAssistant.Tracer.TraceDebug((long)this.GetHashCode(), "ElcAssistant.InitialStep"); MailboxSession mailboxSession = context.Args.StoreSession as MailboxSession; ElcDataTaskContext elcDataTaskContext = context as ElcDataTaskContext; ExAssert.RetailAssert(mailboxSession != null, "Collection step invoked with an invalid session. {0}", new object[] { (context.Args.StoreSession == null) ? "null" : context.Args.StoreSession.GetType().FullName }); ExAssert.RetailAssert(elcDataTaskContext != null, "Collection step invoked with an invalid task context. {0}", new object[] { context.GetType().FullName }); elcDataTaskContext.RetriesAttempted++; bool flag = this.InvokeInternalAssistant(mailboxSession, context.Args, context.CustomDataToLog, elcDataTaskContext.RetriesAttempted); if (flag) { ELCAssistant.Tracer.TraceDebug <IExchangePrincipal, int>((long)this.GetHashCode(), "ELCAssistant is not done processing, this mailbox will be retried, mailbox {0} , Total attempts {1}", mailboxSession.MailboxOwner, elcDataTaskContext.RetriesAttempted); return(new ElcDataTaskContext(context.MailboxData, context.Job, new AssistantStep(this.DoWork), elcDataTaskContext.RetriesAttempted)); } ELCAssistant.Tracer.TraceDebug <IExchangePrincipal, int>((long)this.GetHashCode(), "ELCAssistant is done processing mailbox {0} , Total attempts {1}", mailboxSession.MailboxOwner, elcDataTaskContext.RetriesAttempted); return(null); }
// Token: 0x0600145A RID: 5210 RVA: 0x0007583C File Offset: 0x00073A3C private AssistantTaskContext CollectionStep(AssistantTaskContext context) { this.tracer.TraceFunction((long)this.GetHashCode(), "InferenceDataCollectionAssistant.CollectionStep"); ExAssert.RetailAssert(context != null, "Collection step invoked with a null task context"); StoreSession storeSession = context.Args.StoreSession; InferenceDataCollectionTaskContext inferenceDataCollectionTaskContext = context as InferenceDataCollectionTaskContext; ExAssert.RetailAssert(inferenceDataCollectionTaskContext != null, "Collection step invoked with an invalid task context. {0}", new object[] { context.GetType().FullName }); this.diagnosticLogger.LogInformation("Starting collection task. CollectionGuid={0}, Init={1}, Watermark={2}, MailboxGuid={3}, Name={4}", new object[] { inferenceDataCollectionTaskContext.MailboxProcessingState.CollectionGuid, inferenceDataCollectionTaskContext.MailboxProcessingState.IsInitialized, (inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark == null) ? "None" : inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark.DocumentId.ToString(), storeSession.MailboxGuid, storeSession.MailboxOwner.MailboxInfo.DisplayName }); Exception exception = null; MailboxProcessor.ProcessingResult processingResult; try { MailboxProcessor mailboxProcessor = new MailboxProcessor(this.collectionContext, storeSession, inferenceDataCollectionTaskContext.MailboxProcessingState); processingResult = mailboxProcessor.Process(); } catch (NonUniqueRecipientException ex) { processingResult = 1; exception = ex; } AssistantTaskContext result; if (processingResult == 2) { this.diagnosticLogger.LogInformation("Yielding collection task. CollectionGuid={0}, Init={1}, Watermark={2}, MailboxGuid={3}, Name={4}", new object[] { inferenceDataCollectionTaskContext.MailboxProcessingState.CollectionGuid, inferenceDataCollectionTaskContext.MailboxProcessingState.IsInitialized, (inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark == null) ? "None" : inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark.DocumentId.ToString(), storeSession.MailboxGuid, storeSession.MailboxOwner.MailboxInfo.DisplayName }); result = new InferenceDataCollectionTaskContext(context.MailboxData, context.Job, new AssistantStep(this.CollectionStep), inferenceDataCollectionTaskContext.MailboxProcessingState); } else { storeSession.Mailbox[MailboxSchema.InferenceDataCollectionProcessingState] = new byte[] { 1 }; storeSession.Mailbox.Save(); if (processingResult == 1) { this.diagnosticLogger.LogError("Failed collection task. CollectionGuid={0}, Init={1}, Watermark={2}, MailboxGuid={3}, Name={4}, Exception={5}", new object[] { inferenceDataCollectionTaskContext.MailboxProcessingState.CollectionGuid, inferenceDataCollectionTaskContext.MailboxProcessingState.IsInitialized, (inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark == null) ? "None" : inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark.DocumentId.ToString(), storeSession.MailboxGuid, storeSession.MailboxOwner.MailboxInfo.DisplayName, Util.StringizeException(exception) }); } else { this.diagnosticLogger.LogInformation("Finished collection task. CollectionGuid={0}, Init={1}, Watermark={2}, MailboxGuid={3}, Name={4}", new object[] { inferenceDataCollectionTaskContext.MailboxProcessingState.CollectionGuid, inferenceDataCollectionTaskContext.MailboxProcessingState.IsInitialized, (inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark == null) ? "None" : inferenceDataCollectionTaskContext.MailboxProcessingState.Watermark.DocumentId.ToString(), storeSession.MailboxGuid, storeSession.MailboxOwner.MailboxInfo.DisplayName }); } result = null; } InferenceDataCollectionAssistant.PostInferenceDataCollectionProgressNotification(storeSession.MailboxGuid, processingResult.ToString()); if (processingResult == null) { InferenceDataCollectionAssistant.PostInferenceDataCollectionSuccessNotification(storeSession.MailboxGuid); } return(result); }