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)); }