private async Task EnsureUserRoles(UserDetail user) { user.UserRoles = user.UserRoles ?? new List <UserRoleAssignment>(); var toAssign = await GetAutoUserRoleIds(); foreach (var userRole in toAssign.Select(id => new UserRole { Id = id })) { if (user.UserRoles.All(ur => ur?.UserRole?.Id != userRole.Id)) { user.UserRoles.Add(new UserRoleAssignment { UserRole = userRole }); } } await _cpClient.User.UpdateAsync(user.Id, user.AsUpdateRequest()); }