// Token: 0x06000B35 RID: 2869 RVA: 0x00048468 File Offset: 0x00046668 private void HandleJunkEmailOptionsEvent(MapiEvent mapiEvent, MailboxSession mailboxSession) { if (mapiEvent == null) { throw new ArgumentNullException("mapiEvent"); } if (mailboxSession == null) { throw new ArgumentNullException("mailboxSession"); } if (!JunkEmailOptionsAssistant.IsJunkEmailOptionsEvent(mapiEvent)) { JunkEmailOptionsAssistant.Tracer.TraceDebug((long)this.GetHashCode(), "Skipping uninteresting event."); return; } if (!JunkEmailOptionsAssistant.IsUserMailbox(mailboxSession)) { JunkEmailOptionsAssistant.Tracer.TraceDebug((long)this.GetHashCode(), "Skipping event: non-user mailbox."); return; } if (mailboxSession.MailboxOwner.MailboxInfo.IsArchive) { JunkEmailOptionsAssistant.Tracer.TraceDebug((long)this.GetHashCode(), "Skipping event: archive mailbox."); return; } if (mailboxSession.MailboxOwner.MailboxInfo.IsAggregated) { JunkEmailOptionsAssistant.Tracer.TraceDebug((long)this.GetHashCode(), "Skipping event: aggregated mailbox."); return; } if (JunkEmailOptionsAssistant.IsJunkRuleEvent(mapiEvent)) { try { MailboxTagging.TagForProcessing(mailboxSession); } catch (StoragePermanentException arg) { JunkEmailOptionsAssistant.Tracer.TraceError <string, Guid, StoragePermanentException>((long)this.GetHashCode(), "Failed at tagging mailbox {0} (GUID: {1}). Exception: {2}", mailboxSession.MailboxOwner.MailboxInfo.DisplayName, mailboxSession.MailboxGuid, arg); } return; } if (JunkEmailOptionsAssistant.IsMailboxMoveToThisDatabase(mapiEvent)) { MapiExceptionFilter.TryOperation(delegate() { JunkEmailOptionsAssistant.EnsureJunkEmailRule(mailboxSession, mapiEvent); }, (Exception exception, bool transient) => JunkEmailOptionsAssistant.LogFailedToEnsureJunkEmailRule(exception, transient, mailboxSession)); return; } if (JunkEmailOptionsAssistant.IsFolderCreationEvent(mapiEvent)) { MapiExceptionFilter.TryOperation(delegate() { JunkEmailOptionsAssistant.EnsureJunkEmailRule(mailboxSession, mapiEvent); }, (Exception exception, bool transient) => JunkEmailOptionsAssistant.LogFailedToEnsureJunkEmailRule(exception, transient, mailboxSession)); return; } JunkEmailOptionsAssistant.Tracer.TraceError((long)this.GetHashCode(), "HandleJunkEmailOptionsEvent was called under unexpected conditions"); }
// Token: 0x06000B34 RID: 2868 RVA: 0x00048374 File Offset: 0x00046574 private static bool LogFailedToEnsureJunkEmailRule(Exception e, bool transient, MailboxSession session) { JunkEmailOptionsAssistant.Tracer.TraceError <ADObjectId, Exception>(0L, "Failed to ensure junk e-mail rule for mailbox {0}. Exception: {1}", session.MailboxOwner.ObjectId, e); if (transient) { return(true); } if (e is ObjectNotFoundException) { return(false); } JunkEmailOptionsAssistant.EventLogger.LogEvent(InfoWorkerEventLogConstants.Tuple_FailedToEnsureJunkEmailRule, session.MailboxOwner.MailboxInfo.MailboxGuid.ToString(), new object[] { session.MailboxOwner.ObjectId, e }); StoragePermanentException ex = e as StoragePermanentException; if (ex != null) { MapiExceptionFilter.ThrowInnerIfMapiExceptionHandledbyAI(ex); Exception innerException = ex.InnerException; if (innerException != null && innerException is NonUniqueRecipientException) { return(false); } } return(true); }
// Token: 0x06000B69 RID: 2921 RVA: 0x00049798 File Offset: 0x00047998 public static void TryOperation(Action operation, Func <Exception, bool, bool> exceptionHandler) { if (operation == null) { throw new ArgumentNullException("operation"); } if (exceptionHandler == null) { throw new ArgumentNullException("exceptionHandler"); } MapiExceptionFilter.TryOperation <object>(MapiExceptionFilter.ConvertActionToFunc(operation), null, exceptionHandler); }
// Token: 0x06000B6A RID: 2922 RVA: 0x000497C4 File Offset: 0x000479C4 public static void ThrowInnerIfMapiExceptionHandledbyAI(StoragePermanentException e) { if (e == null) { return; } MapiPermanentException ex = e.InnerException as MapiPermanentException; if (ex != null && MapiExceptionFilter.IsMapiPermanentExceptionHandledByAI(ex)) { throw ex; } }