Esempio n. 1
0
        // Token: 0x06000193 RID: 403 RVA: 0x0000BB44 File Offset: 0x00009D44
        private void GetLegacyStateAndSetLitigationHoldDuration()
        {
            ElcMailboxHelper.ConfigState configState = ElcMailboxHelper.ConfigState.Unknown;
            IRecipientSession            recipientSession;
            ADUser aduser = AdReader.GetADUser(this.mailboxSession, false, out recipientSession);

            if (aduser == null)
            {
                ElcUserInformation.Tracer.TraceError((long)this.GetHashCode(), "{0}: Failed to get the writable AD information for the user.", new object[]
                {
                    TraceContext.Get()
                });
                throw new SkipException(Strings.descADUserLookupFailure(this.mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString()));
            }
            Unlimited <EnhancedTimeSpan>?legacyLitigationHoldDuration = this.GetLegacyLitigationHoldDuration(out configState);

            aduser.LitigationHoldDuration = legacyLitigationHoldDuration;
            try
            {
                recipientSession.Save(aduser);
            }
            catch (DataValidationException ex)
            {
                ElcUserInformation.Tracer.TraceDebug <ElcUserInformation, string, DataValidationException>((long)this.GetHashCode(), "{0}: DataValidationException occurred when setting LitigationHoldDuration to ADUser. Duration value: {1}. Exception: {2}", this, (legacyLitigationHoldDuration != null) ? (legacyLitigationHoldDuration.Value.IsUnlimited ? Unlimited <EnhancedTimeSpan> .UnlimitedString : legacyLitigationHoldDuration.Value.Value.TotalDays.ToString()) : "No value", ex);
                throw new SkipException(new LocalizedString(string.Format("{0}: DataValidationException occurred when setting LitigationHoldDuration to ADUser. Duration value: {1}.", this, (legacyLitigationHoldDuration != null) ? (legacyLitigationHoldDuration.Value.IsUnlimited ? Unlimited <EnhancedTimeSpan> .UnlimitedString : legacyLitigationHoldDuration.Value.Value.TotalDays.ToString()) : "No value")), ex);
            }
            this.litigationHoldDuration = aduser.LitigationHoldDuration;
        }
Esempio n. 2
0
        // Token: 0x06000192 RID: 402 RVA: 0x0000B980 File Offset: 0x00009B80
        internal ElcUserInformation(MailboxSession session)
        {
            this.mailboxSession = session;
            this.utcNow         = DateTime.UtcNow;
            this.now            = (DateTime)ExDateTime.Now;
            IRecipientSession recipientSession;

            this.adUser = AdReader.GetADUser(this.mailboxSession, true, out recipientSession);
            if (this.adUser == null)
            {
                ElcUserInformation.Tracer.TraceError((long)this.GetHashCode(), "{0}: Failed to get the AD information for the user.", new object[]
                {
                    TraceContext.Get()
                });
                throw new SkipException(Strings.descADUserLookupFailure(this.mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString()));
            }
            if (this.adUser.RetentionHoldEnabled && (this.adUser.StartDateForRetentionHold == null || this.now >= this.adUser.StartDateForRetentionHold) && (this.adUser.EndDateForRetentionHold == null || this.now <= this.adUser.EndDateForRetentionHold))
            {
                this.suspendExpiration = true;
            }
            if (this.adUser.LitigationHoldEnabled)
            {
                this.litigationHold         = true;
                this.litigationHoldDuration = this.adUser.LitigationHoldDuration;
                if (this.litigationHoldDuration == null && this.ApplyLitigationHoldDuration)
                {
                    this.GetLegacyStateAndSetLitigationHoldDuration();
                }
            }
            this.auditEnabled             = this.adUser.MailboxAuditEnabled;
            this.InPlaceHolds             = this.adUser.InPlaceHolds;
            this.InPlaceHoldConfiguration = new List <InPlaceHoldConfiguration>();
        }