/// <summary>
 ///     Removes the given permission.
 /// </summary>
 /// <param name="permission">The permission.</param>
 public void RemovePermission(IAccessPermission permission)
 {
     _lockObj.EnterWriteLock();
     try
     {
         _permissions.Remove(permission);
     }
     finally
     {
         _lockObj.ExitWriteLock();
     }
 }
 /// <summary>
 ///     Adds or updates the given permission.
 /// </summary>
 /// <param name="permission">The permission.</param>
 public void AddOrUpdatePermission(IAccessPermission permission)
 {
     _lockObj.EnterWriteLock();
     try
     {
         _permissions.RemoveWhere(x => Equals(x, permission));
         _permissions.Add(permission);
     }
     finally
     {
         _lockObj.ExitWriteLock();
     }
 }
 public void RemovePermission(IAccessPermission permission)
 {
     Contract.Requires(permission != null);
 }
 public void AddOrUpdatePermission(IAccessPermission permission)
 {
     Contract.Requires(permission != null);
 }