// Token: 0x06001176 RID: 4470 RVA: 0x00066538 File Offset: 0x00064738
 private void TraceException(string mailboxOwner, Exception ex)
 {
     CallIdTracer.TraceError(UMReportingAssistant.Tracer, this.GetHashCode(), "UMReportingAssistant: Error occurred during aggregation in mailbox {0}, exception = {1}", new object[]
     {
         mailboxOwner,
         ex
     });
 }
예제 #2
0
        // Token: 0x06001182 RID: 4482 RVA: 0x000665E0 File Offset: 0x000647E0
        public bool IsMailboxInteresting(MailboxInformation mailboxInformation)
        {
            if (mailboxInformation.IsPublicFolderMailbox())
            {
                return(false);
            }
            object mailboxProperty = mailboxInformation.GetMailboxProperty(MailboxSchema.HasUMReportData);

            if (mailboxProperty == null || !(bool)mailboxProperty)
            {
                CallIdTracer.TraceDebug(UMReportingAssistantType.Tracer, this.GetHashCode(), "Mailbox with Display name {0} has UM extended property {1}.", new object[]
                {
                    mailboxInformation.DisplayName,
                    (mailboxProperty == null) ? "not set" : "false"
                });
                return(false);
            }
            CallIdTracer.TraceDebug(UMReportingAssistantType.Tracer, this.GetHashCode(), "Mailbox with Display name {0} has UM extended property set to true.", new object[]
            {
                mailboxInformation.DisplayName
            });
            return(true);
        }
        // Token: 0x06001175 RID: 4469 RVA: 0x00066360 File Offset: 0x00064560
        protected override void InvokeInternal(InvokeArgs invokeArgs, List <KeyValuePair <string, object> > customDataToLog)
        {
            MailboxSession mailboxSession = invokeArgs.StoreSession as MailboxSession;

            if (mailboxSession == null)
            {
                return;
            }
            string text = mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString();

            try
            {
                CallIdTracer.TraceDebug(UMReportingAssistant.Tracer, this.GetHashCode(), "UMReportingAssistant invoked. MDB {0}, UserPrincipalName {1}", new object[]
                {
                    base.DatabaseInfo.DisplayName,
                    text
                });
                UMReportUtil.DoAggregation(mailboxSession);
                UMReportUtil.SetMailboxExtendedProperty(mailboxSession, false);
                CallIdTracer.TraceDebug(UMReportingAssistant.Tracer, this.GetHashCode(), "UMReportingAssistant returning. MDB {0}, UserPrincipalName {1}", new object[]
                {
                    base.DatabaseInfo.DisplayName,
                    text
                });
            }
            catch (UnableToFindUMReportDataException ex)
            {
                UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_UnableToFindUMReportData, null, new object[]
                {
                    text,
                    CommonUtil.ToEventLogString(ex)
                });
                this.TraceException(text, ex);
                UMReportUtil.SetMailboxExtendedProperty(mailboxSession, false);
            }
            catch (CorruptDataException ex2)
            {
                UmGlobals.ExEvent.LogEvent(mailboxSession.MailboxOwner.MailboxInfo.OrganizationId, UMEventLogConstants.Tuple_FatalErrorDuringAggregation, text, text, CommonUtil.ToEventLogString(ex2));
                this.TraceException(text, ex2);
                bool flag = true;
                FaultInjectionUtils.FaultInjectChangeValue <bool>(3945147709U, ref flag);
                if (flag)
                {
                    ExceptionHandling.SendWatsonWithExtraData(ex2, false);
                }
                UMReportUtil.TryDeleteUMReportConfig(mailboxSession);
            }
            catch (DataSourceOperationException ex3)
            {
                this.TraceException(text, ex3);
                throw new SkipException(ex3);
            }
            catch (StoragePermanentException ex4)
            {
                this.TraceException(text, ex4);
                UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_PermanentErrorDuringAggregation, null, new object[]
                {
                    text,
                    CommonUtil.ToEventLogString(ex4)
                });
                throw new SkipException(ex4);
            }
        }