// Token: 0x060000FE RID: 254 RVA: 0x00005BE0 File Offset: 0x00003DE0 public bool IsEventInteresting(MapiEvent mapiEvent) { CachedState cachedState = AssistantsService.CachedObjectsList.GetCachedState(mapiEvent.MailboxGuid); MailboxData mailboxData = (MailboxData)cachedState.State[3]; return(BodyTagProcessor.IsEventInteresting(mapiEvent) || ActionsProcessor.IsEventInteresting(mapiEvent) || SentItemsProcessor.IsEventInteresting(mapiEvent, mailboxData) || LicensingProcessor.IsEventInteresting(mapiEvent, mailboxData) || InferenceProcessor.IsEventInteresting(mapiEvent, mailboxData)); }
// Token: 0x060000FF RID: 255 RVA: 0x00005C38 File Offset: 0x00003E38 protected override void HandleEventInternal(MapiEvent mapiEvent, MailboxSession session, StoreObject item, List <KeyValuePair <string, object> > customDataToLog) { CachedState cachedState = AssistantsService.CachedObjectsList.GetCachedState(mapiEvent.MailboxGuid); MailboxData mailboxData = (MailboxData)cachedState.State[3]; if (mailboxData == null) { mailboxData = new MailboxData(session); Interlocked.Exchange(ref cachedState.State[3], mailboxData); } if (BodyTagProcessor.IsEventInteresting(mapiEvent)) { BodyTagProcessor.HandleEventInternal(session, item); return; } if (ActionsProcessor.IsEventInteresting(mapiEvent)) { ActionsProcessor.HandleEventInternal(mapiEvent, session, item, mailboxData); Interlocked.Exchange(ref cachedState.State[3], mailboxData); return; } if (SentItemsProcessor.IsEventInteresting(mapiEvent, mailboxData)) { SentItemsProcessor.HandleEventInternal(mapiEvent, session, item, mailboxData); Interlocked.Exchange(ref cachedState.State[3], mailboxData); return; } if (LicensingProcessor.IsEventInteresting(mapiEvent, mailboxData)) { LicensingProcessor.HandleEventInternal(session, item); return; } if (InferenceProcessor.IsEventInteresting(mapiEvent, mailboxData)) { InferenceProcessor.HandleEventInternal(mapiEvent, session, item, mailboxData, customDataToLog); } }
// Token: 0x0600010E RID: 270 RVA: 0x00006844 File Offset: 0x00004A44 internal static void HandleEventInternal(MapiEvent mapiEvent, MailboxSession session, StoreObject storeItem, MailboxData mailboxData) { ActionsProcessor.Tracer.TraceDebug(0L, "{0}: Calling ActionsProcessor.HandleEventInternal", new object[] { TraceContext.Get() }); try { StoreObjectId conversationActionsFolderId = ConversationActionItem.GetConversationActionsFolderId(session, false); if (conversationActionsFolderId != null) { if (ArrayComparer <byte> .Comparer.Equals(mapiEvent.ParentEntryId, conversationActionsFolderId.ProviderLevelItemId)) { ConversationActionItem conversationActionItem = storeItem as ConversationActionItem; if (conversationActionItem == null) { ActionsProcessor.Tracer.TraceError(0L, "{0}: HandleEventInternal received null item", new object[] { TraceContext.Get() }); } else if (conversationActionItem.IsCorrectVersion()) { bool flag = ActionsProcessor.MergeDuplicateActionItems(session, conversationActionItem, mailboxData); if (flag) { ActionsProcessor.Tracer.TraceDebug(0L, "{0}: Item being processed got deleted by merging duplicates", new object[] { TraceContext.Get() }); } else { ActionsProcessor.Tracer.TraceDebug <object, ConversationId>(0L, "{0}: Processing conversation action item with conversation id = {1}", TraceContext.Get(), conversationActionItem.ConversationId); AggregateOperationResult result = conversationActionItem.ProcessItems(ConversationAction.AlwaysMove | ConversationAction.AlwaysDelete | ConversationAction.AlwaysCategorize); ActionsProcessor.TraceAggregateOperationResult(result); conversationActionItem.Save(SaveMode.ResolveConflicts); } } } } } catch (CorruptDataException) { ActionsProcessor.Tracer.TraceDebug(0L, "{0}: CorruptDataException thrown while processing action item", new object[] { TraceContext.Get() }); byte[] valueOrDefault = storeItem.GetValueOrDefault <byte[]>(ItemSchema.ConversationIndex, new byte[0]); Globals.Logger.LogEvent(InfoWorkerEventLogConstants.Tuple_CorruptConversationActionItem, null, new object[] { session.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString(), BitConverter.ToString(valueOrDefault) }); } catch (ObjectNotFoundException) { ActionsProcessor.Tracer.TraceDebug(0L, "{0}: ObjectNotFoundException thrown while processing action item", new object[] { TraceContext.Get() }); } }