コード例 #1
0
        internal async Task <UserClaimsContainer> EnsureUserClaimsContainer(UserClaimsContainer userClaimsContainer, CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();
            ThrowIfDisposed();
            try
            {
                var enureIdExist = userClaimsContainer.Payload.GetId();
                var ucc          = await identityDocumentStore.IdentitySession <UserClaimsContainer>(async session => await session.LoadAsync <UserClaimsContainer>(enureIdExist));

                if (ucc == null)
                {
                    await StoreUserClaimsContainer(userClaimsContainer.SetId <UserClaimsContainer, Claim>(enureIdExist), cancellationToken);

                    return(await EnsureUserClaimsContainer(userClaimsContainer, cancellationToken));
                }
                return(ucc);
            }
            catch (Exception e)
            {
                logger.LogError(e, $"error EnsureUserClaimsContainer user:{userClaimsContainer} ");
                throw;
            }
        }
コード例 #2
0
 internal async Task StoreUserClaimsContainer(UserClaimsContainer userClaimsContainer, CancellationToken cancellationToken = default)
 {
     cancellationToken.ThrowIfCancellationRequested();
     ThrowIfDisposed();
     try
     {
         var normalizedId = userClaimsContainer.Payload.GetId();
         await identityDocumentStore.IdentitySession(async session => await session.StoreAsync(userClaimsContainer.SetId <UserClaimsContainer, Claim>(normalizedId), normalizedId, cancellationToken));
     }
     catch (Exception e)
     {
         logger.LogError(e, $"error StoreUserClaimsContainer user:{userClaimsContainer} ");
         throw;
     }
 }