Пример #1
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter();
     if (this.DataObject != null && SharedConfiguration.IsSharedConfiguration(this.DataObject.OrganizationId) && !base.ShouldContinue(Strings.ConfirmSharedConfiguration(this.DataObject.OrganizationId.OrganizationalUnit.Name)))
     {
         TaskLogger.LogExit();
         return;
     }
     if (this.Mailbox != null)
     {
         ExchangePrincipal exchangePrincipal = this.ProcessPrimaryMailbox();
         IRecipientSession recipientSession;
         ADUser            user = StoreRetentionPolicyTagHelper.FetchRecipientFromMailboxId(base.DomainController, this.Mailbox, out recipientSession, exchangePrincipal.MailboxInfo.OrganizationId);
         if (exchangePrincipal != null && StoreRetentionPolicyTagHelper.HasOnPremArchiveMailbox(user))
         {
             this.ProcessArchiveMailbox();
         }
     }
     else
     {
         bool flag = this.DataObject.IsChanged(ADObjectSchema.Name);
         if (this.DataObject.IsChanged(RetentionPolicyTagSchema.RetentionId) && !this.Force && !base.ShouldContinue(Strings.WarningRetentionTagIdChange(this.DataObject.Identity.ToString())))
         {
             return;
         }
         base.InternalProcessRecord();
         if (this.contentSettingsObject.ObjectState == ObjectState.Changed)
         {
             if (flag)
             {
                 ElcContentSettings elcContentSettings = this.DataObject.GetELCContentSettings().FirstOrDefault <ElcContentSettings>();
                 elcContentSettings.CopyChangesFrom(this.contentSettingsObject);
                 this.contentSettingsObject = elcContentSettings;
             }
             base.DataSession.Save(this.contentSettingsObject);
         }
     }
     TaskLogger.LogExit();
 }