Ejemplo n.º 1
0
        private async Task <bool> HandleRemovedPermissionMappings(
            long roleId,
            IEnumerable <RolePermissionMappingIdentityViewModel> permissionMappings,
            IEnumerable <int> grantedPermissionIds,
            long actionId,
            CancellationToken cancellationToken)
        {
            var removedPermissionMappingIds = permissionMappings
                                              .Where(x => !grantedPermissionIds.Contains(x.PermissionId))
                                              .Select(x => x.Id)
                                              .ToArray();

            if (!removedPermissionMappingIds.Any())
            {
                return(false);
            }

            RolesLogMessages.RolePermissionMappingsDeleting(_logger, roleId, removedPermissionMappingIds);
            await _rolesRepository.UpdatePermissionMappingsAsync(
                removedPermissionMappingIds,
                deletionId : actionId,
                cancellationToken);

            RolesLogMessages.RolePermissionMappingsDeleted(_logger, roleId);

            return(true);
        }