private async Task <IdentityUtilsResult> AddOrUpdateTenantRolesClaim(Guid userId, Guid tenantId, TenantRolesClaimData tenantClaimData) { var result = IdentityResult.Success; var newTenantRolesClaim = new Claim(TenantClaimsSchema.TenantRolesData, tenantClaimData.Serialize()); var oldTenantRolesClaim = await GetUserTenantRolesClaims(userId, tenantId); var(userResult, user) = await FindByIdAsync(userId).UnpackSingleOrDefault(); if (!userResult.Success) { return(userResult); } if (oldTenantRolesClaim != null) { result = await userManager.RemoveClaimAsync(user, oldTenantRolesClaim); } if (result.Succeeded) { result = await userManager.AddClaimAsync(user, newTenantRolesClaim); } return(result.ToIdentityUtilsResult()); }