Exemple #1
0
        public virtual async Task AddClaimsAsync(TUser user, IEnumerable <Claim> claims, CancellationToken cancellationToken)
        {
            ThrowIfDisposed();
            Guard.ArgumentNotNull(user, nameof(user));
            Guard.ArgumentNotNull(claims, nameof(claims));
            if (claims.Any())
            {
                using (DbTransactionScope scope = new DbTransactionScope())
                {
                    var ucArray = claims.Select(c =>
                    {
                        UserClaim uc = new UserClaim();
                        uc.Id        = _idGenerationService.GenerateId();
                        uc.UserId    = user.Id;
                        uc.InitializeFromClaim(c);
                        return(uc);
                    }).ToArray();

                    foreach (var u in ucArray)
                    {
                        await _userClaimRepository.InsertAsync(u);
                    }
                    scope.Complete();
                }
            }
        }
        protected override UserClaim CreateUserClaim(User user, Claim claim)
        {
            var userClaim = new UserClaim {
                UserId = user.Id
            };

            userClaim.InitializeFromClaim(claim);
            return(userClaim);
        }