private AssistantTaskContext ProcessMailboxUnderPoisonControl(AssistantTaskContext context, EmergencyKit kit) { AIException exception = null; AssistantTaskContext nextContext = null; try { base.CatchMeIfYouCan(delegate { AdminRpcMailboxData adminRpcMailboxData = context.MailboxData as AdminRpcMailboxData; if (adminRpcMailboxData != null) { nextContext = this.ProcessAdminRpcMailboxUnderPoisonControl(context, kit); return; } StoreMailboxData storeMailboxData = context.MailboxData as StoreMailboxData; if (storeMailboxData != null) { nextContext = this.ProcessStoreMailboxUnderPoisonControl(context, kit); } }, this.Assistant.NonLocalizedName); } catch (AIException ex) { this.LogAIException(context.MailboxData, ex); exception = ex; } this.PostProcessMailbox(exception, nextContext, context.MailboxData); return(nextContext); }
// Token: 0x0600044C RID: 1100 RVA: 0x00015D5C File Offset: 0x00013F5C private AssistantTaskContext ProcessStoreMailbox(AssistantTaskContext context, EmergencyKit kit) { TimeBasedDatabaseJob.processMailboxTestHook.Value(); StoreMailboxData storeMailboxData = context.MailboxData as StoreMailboxData; AssistantTaskContext assistantTaskContext; using (StoreSession storeSession = this.OpenMailboxSession(storeMailboxData)) { Stopwatch stopwatch = Stopwatch.StartNew(); try { if (context.Args == null) { context.Args = InvokeArgs.Create(storeSession, this.Driver.TimePerTask, storeMailboxData); } kit.SetContext(this.Assistant, storeMailboxData); assistantTaskContext = context.Step(context); } finally { kit.UnsetContext(); if (this.Driver.AssistantType.ControlDataPropertyDefinition != null && context.Args != null) { context.Args.StoreSession.Mailbox[this.Driver.AssistantType.ControlDataPropertyDefinition] = ControlData.Create(DateTime.UtcNow).ToByteArray(); context.Args.StoreSession.Mailbox.Save(); } } stopwatch.Stop(); this.performanceCounters.AverageMailboxProcessingTime.IncrementBy(stopwatch.ElapsedTicks); this.performanceCounters.AverageMailboxProcessingTimeBase.Increment(); if (assistantTaskContext == null) { this.performanceCounters.MailboxesProcessed.Increment(); } } return(assistantTaskContext); }
// Token: 0x0600044A RID: 1098 RVA: 0x00015B58 File Offset: 0x00013D58 private AssistantTaskContext ProcessAdminRpcMailboxUnderPoisonControl(AssistantTaskContext context, EmergencyKit kit) { TimeBasedDatabaseJob.processMailboxTestHook.Value(); AssistantTaskContext result = null; Guid activityId = (ActivityContext.ActivityId != null) ? ActivityContext.ActivityId.Value : Guid.Empty; if (context.Args == null) { context.Args = InvokeArgs.Create(null, this.Driver.TimePerTask, context.MailboxData); } AssistantsLog.LogStartProcessingMailboxEvent(activityId, this.Assistant as AssistantBase, context.MailboxData.MailboxGuid, context.MailboxData.DisplayName, this); try { kit.SetContext(this.Assistant, context.MailboxData); result = context.Step(context); } finally { kit.UnsetContext(); } AssistantsLog.LogEndProcessingMailboxEvent(activityId, this.Assistant as AssistantBase, context.CustomDataToLog, context.MailboxData.MailboxGuid, context.MailboxData.DisplayName, this); return(result); }
// Token: 0x0600044B RID: 1099 RVA: 0x00015C50 File Offset: 0x00013E50 private AssistantTaskContext ProcessStoreMailboxUnderPoisonControl(AssistantTaskContext context, EmergencyKit kit) { StoreMailboxData storeMailboxData = context.MailboxData as StoreMailboxData; AssistantTaskContext result = null; Guid activityId = (ActivityContext.ActivityId != null) ? ActivityContext.ActivityId.Value : Guid.Empty; base.TracePfd("PFD AIS {0} {1}: ProcessMailbox: {2}", new object[] { 23127, this, storeMailboxData.DisplayName }); AssistantsLog.LogStartProcessingMailboxEvent(activityId, this.Assistant as AssistantBase, storeMailboxData.MailboxGuid, storeMailboxData.DisplayName, this); bool flag = false; IMailboxFilter mailboxFilter = this.Driver.AssistantType as IMailboxFilter; if (mailboxFilter != null && mailboxFilter.MailboxType.Contains(MailboxType.InactiveMailbox)) { flag = true; ADSessionSettingsFactory.InactiveMailboxVisibilityEnabler.Enable(); } try { result = this.ProcessStoreMailbox(context, kit); } finally { if (flag) { ADSessionSettingsFactory.InactiveMailboxVisibilityEnabler.Disable(); } } AssistantsLog.LogEndProcessingMailboxEvent(activityId, this.Assistant as AssistantBase, context.CustomDataToLog, storeMailboxData.MailboxGuid, storeMailboxData.DisplayName, this); return(result); }
// Token: 0x0600024D RID: 589 protected abstract AIException DangerousProcessItem(EmergencyKit kit, InterestingEvent interestingEvent);