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