protected override void ApplyModification(ActiveDirectoryAccessRule[] modifiedAces)
 {
     TaskLogger.LogEnter();
     if (this.trustee != null)
     {
         List <ActiveDirectoryAccessRule> list = new List <ActiveDirectoryAccessRule>();
         foreach (SecurityIdentifier identity in ((IADSecurityPrincipal)this.trustee).SidHistory)
         {
             foreach (RecipientAccessRight right in base.AccessRights)
             {
                 list.Add(new ActiveDirectoryAccessRule(identity, ActiveDirectoryRights.ExtendedRight, AccessControlType.Allow, RecipientPermissionHelper.GetRecipientAccessRightGuid(right), this.GetInheritanceType(), Guid.Empty));
             }
         }
         if (list.Count > 0)
         {
             list.AddRange(modifiedAces);
             modifiedAces = list.ToArray();
         }
     }
     DirectoryCommon.RemoveAces(new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.ErrorLoggerDelegate(base.WriteError), this.DataObject, modifiedAces);
     TaskLogger.LogExit();
 }
 protected override void ApplyModification(ADRawEntry modifiedObject, ActiveDirectoryAccessRule[] modifiedAces)
 {
     DirectoryCommon.RemoveAces(new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.ErrorLoggerDelegate(this.WriteErrorPerObject), base.GetWritableSession(modifiedObject.Id), modifiedObject.Id, modifiedAces);
 }