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