// 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()
         });
     }
 }