public async Task Handle(UpdateUserAccountCommand message, CancellationToken cancellationToken) { var accounts = await _client.GetEmployerIdentifiersAsync(message.IdamsUserId); var user = await _client.GetUsersDetailsAsync(message.IdamsUserId); user.EmployerAccountIds = accounts.ToList(); await _userRepository.UpsertUserAsync(user); }
private static async Task PopulateAccountsClaim( Microsoft.AspNetCore.Authentication.OpenIdConnect.TokenValidatedContext ctx, IRecruitVacancyClient vacancyClient) { var userId = ctx.Principal.GetUserId(); var accounts = await vacancyClient.GetEmployerIdentifiersAsync(userId); var accountsAsJson = JsonConvert.SerializeObject(accounts); var associatedAccountsClaim = new Claim(EmployerRecruitClaims.AccountsClaimsTypeIdentifier, accountsAsJson, JsonClaimValueTypes.Json); ctx.Principal.Identities.First().AddClaim(associatedAccountsClaim); }