public void UpdatePermissions(List <AppPermission> permissions) { // mark deleted revoked permissions GroupPermissions.ForEach(permission => { if (!permissions.Any(d => d.Id == permission.PermissionId)) { permission.Delete(); } }); // add new permissions permissions.ForEach(permission => { if (!GroupPermissions.Any(d => d.PermissionId == permission.Id)) { GroupPermissions.Add(new AppGroupPermission(permission)); } }); }