The quick fix for that would be to use UserMetadata directly
var users = await client.Users.GetAllAsync();
var enumerable = users
.Select(p => new
{
FirstName = string.IsNullOrWhiteSpace(p.FirstName) ? p.UserMetadata?.given_name : p.FirstName,
LastName = string.IsNullOrWhiteSpace(p.LastName) ? p.UserMetadata?.family_name : p.LastName});
But I wish I could get the FirstName and the LastName directly from the API like:
var client = new ManagementApiClient(tokenResponse.AccessToken,
new Uri(_auth0Options.Value.ApiIdentifier));
var users = await client.Users.GetAllAsync();
var result= users.Select(p => new {p.FirstName, p.LastName })
As I already have a rule
function (user, context, callback) {
if (user.user_metadata.given_name)
user.given_name = user.user_metadata.given_name;
if (user.user_metadata.family_name)
user.family_name = user.user_metadata.family_name;
callback(null, user, context);
}