public async Task <bool> Handle(CreateUserCommand request, CancellationToken cancellationToken)
        {
            var user = new Domain.AggregatesModel.UserAggregate.User(request.UserId, request.NickName, request.ChatServerUserId);

            _userRepository.Add(user);
            return(await _userRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken));
        }
        public async Task <bool> Handle(CreateUserCommand request, CancellationToken cancellationToken)
        {
            var nickName = "用户" + request.UserName;
            var user     = new Domain.AggregatesModel.UserAggregate.User(request.UserId, nickName, _scoreRewardSettings.InitUser);

            _userRepository.Add(user);
            return(await _userRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken));
        }
        private async Task SendUserCreatedEventAsync(Domain.AggregatesModel.UserAggregate.User user)
        {
            var @event = new UserCreatedEvent {
                UserId = user.Id, NickName = user.Nickname, ChatServerUserId = user.ChatServerUserId
            };

            _messageSession = (IMessageSession)_serviceProvider.GetService(typeof(IMessageSession));
            await _messageSession.Publish(@event);

            _logger.LogInformation("----- Published UserCreatedEvent: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event);
        }
 private async Task UpdateRedisAsync(Domain.AggregatesModel.UserAggregate.User user)
 {
     try
     {
         // 向redis中写入用户信息,供聊天服务使用
         await _chatServerRedisService.WriteUserAsync(user);
     }
     catch (Exception ex)
     {
         _logger.LogError("Redis Error: {@RedisError}", ex);
     }
 }
        public async Task <bool> Handle(CreateUserCommand request, CancellationToken cancellationToken)
        {
            var nickName = "用户" + request.UserName;
            var user     = new Domain.AggregatesModel.UserAggregate.User(request.Id, request.UserName, request.PhoneNumber, request.Code, nickName);

            _userRepository.Add(user);

            if (await _userRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken))
            {
                await SendUserCreatedEventAsync(user);

                return(true);
            }

            throw new ApplicationException($"{Program.AppName}: 保存用户失败");
        }
        public async Task <bool> Handle(RegisterUserCommand request,
                                        CancellationToken cancellationToken)
        {
            var userName     = request.UserName.ToLower();
            var existingUser = await _userQueries.FindByNameAsync(userName);

            if (existingUser != null)
            {
                throw new DomainException($"User name '{request.UserName}' already taken, please choose another name.");
            }

            var user = new Domain.AggregatesModel.UserAggregate.User(userName, request.Email, null, PasswordHasher.HashPassword(userName, request.Password), true, false, request.FirstName, request.LastName, request.Birthday);

            await _userRepository.AddAsync(user);

            return(await _userRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken));
        }