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