Beispiel #1
0
        public async Task <UserInfo> CreateUserAsync(ExternalRegisterDto userDto)
        {
            using (var transaction = _UserServiceDbContext.Database.BeginTransaction())
            {
                try
                {
                    var identityUser = await AddIdentityUser(userDto.Email);

                    await _UserManager.AddLoginAsync(identityUser, new UserLoginInfo(userDto.Provider,
                                                                                     userDto.ProviderUserId, userDto.Provider));

                    var user = await AddUserInfo(identityUser, userDto.FirstName, userDto.LastName);

                    await _UserServiceDbContext.SaveChangesAsync();

                    transaction.Commit();
                    return(user);
                }
                catch (Exception e)
                {
                    transaction.Rollback();

                    return(null);
                }
            }
        }
        public async Task Handle(ChangeEmailRequestEmail request, CancellationToken cancellationToken)
        {
            var user = await _dbContext.Users
                       .SingleOrDefaultAsync(x => x.Id == request.AggregateRootId, cancellationToken)
                       .ConfigureAwait(false);

            user.Email = request.NewEmail;
            await _dbContext.SaveChangesAsync(cancellationToken);
        }
        public async Task Handle(DeleteUserRequestEvent request, CancellationToken cancellationToken)
        {
            var user = await _dbContext.Users.SingleOrDefaultAsync(x => x.Id == request.AggregateRootId, cancellationToken)
                       .ConfigureAwait(false);

            _dbContext.Users.Remove(user);

            await _dbContext.SaveChangesAsync(cancellationToken);
        }
        public async Task Handle(UserEmailVerifiedEvent request, CancellationToken cancellationToken)
        {
            var user = await _dbContext.Users.SingleOrDefaultAsync(x => x.Id == request.AggregateRootId, cancellationToken)
                       .ConfigureAwait(false);

            user.IsEmailVerified = true;

            await _dbContext.SaveChangesAsync(cancellationToken);
        }
        public async Task Handle(CreateUserRequestEvent notification, CancellationToken cancellationToken)
        {
            var user = new User
            {
                Id              = notification.AggregateRootId,
                Email           = notification.Email,
                EncryptionKeyId = notification.AggregateRootId
            };

            _dbContext.Add(user);

            await _dbContext.SaveChangesAsync(cancellationToken).ConfigureAwait(false);
        }