public async Task HandleAsync(UsernameChanged @event)
        {
            await _handler
            .Run(async() =>
            {
                Logger.Debug($"Handle {nameof(UsernameChanged)} event, userId:{@event.UserId}, newName:{@event.NewName}");
                var user = await _userRepository.GetByIdAsync(@event.UserId);
                if (user.HasNoValue)
                {
                    throw new ServiceException(OperationCodes.UserNotFound,
                                               $"User name cannot be changed because user: {@event.UserId} does not exist");
                }

                Logger.Debug($"Update userName, userId:{@event.UserId}, newName:{@event.NewName}");
                user.Value.Name  = @event.NewName;
                user.Value.State = @event.State;
                await _userRepository.EditAsync(user.Value);
                await _cache.AddAsync(user.Value);

                Logger.Debug($"Update user's remarks with new userName, userId:{@event.UserId}, newName:{@event.NewName}");
                await _remarkRepository.UpdateUserNamesAsync(@event.UserId, @event.NewName);
            })
            .OnError((ex, logger) =>
            {
                logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event");
            })
            .ExecuteAsync();
        }
コード例 #2
0
        public async Task UpdateUserNamesAsync(string userId, string name)
        {
            Logger.Debug($"Update user's remarks with new userName, userid: {userId}, userName: {name}");
            var user = await _userRepository.GetOrFailAsync(userId);

            await _remarkRepository.UpdateUserNamesAsync(userId, name);
        }