示例#1
0
 internal void Save(CoreFolder coreFolder)
 {
     this.CheckValid();
     Util.ThrowOnNullArgument(coreFolder, "coreFolder");
     if (this.IsDirty)
     {
         this.EnforceRestriction(coreFolder);
         this.SaveSharingPartnership(coreFolder.Session as MailboxSession);
         using (IModifyTable permissionTable = coreFolder.GetPermissionTable(this.PermissionSet.ModifyTableOptions))
         {
             MapiAclTableAdapter mapiAclTableAdapter = new MapiAclTableAdapter(permissionTable);
             this.AddPermissionEntriesForRemove(mapiAclTableAdapter);
             this.AddPermissionEntriesForAddOrModify(mapiAclTableAdapter);
             mapiAclTableAdapter.ApplyPendingChanges(true);
         }
     }
     this.isInvalid = true;
 }
示例#2
0
 private void LoadFrom(CoreFolder coreFolder)
 {
     using (IModifyTable permissionTable = coreFolder.GetPermissionTable(this.PermissionSet.ModifyTableOptions))
     {
         try
         {
             this.LoadFrom(new MapiAclTableAdapter(permissionTable));
         }
         catch (DataSourceOperationException ex)
         {
             throw StorageGlobals.TranslateDirectoryException(ServerStrings.ADException, ex, null, "PermissionsTable.LoadFrom. Failed due to directory exception {0}.", new object[]
             {
                 ex
             });
         }
         catch (DataSourceTransientException ex2)
         {
             throw StorageGlobals.TranslateDirectoryException(ServerStrings.ADException, ex2, null, "PermissionsTable.LoadFrom. Failed due to directory exception {0}.", new object[]
             {
                 ex2
             });
         }
     }
 }