public async Task HandleAsync(SignedIn @event) { await _handler .Run(async() => { var user = await _userServiceClient.GetAsync <User>(@event.UserId); await _accountStateService.SetAsync(user.Value.UserId, user.Value.State); await _cache.AddAsync(user.Value); }) .OnError((ex, logger) => { logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event"); }) .ExecuteAsync(); }
public async Task HandleAsync(SignedUp @event) { await _handler .Run(async() => { var user = await _userServiceClient.GetAsync(@event.UserId); if (user.HasNoValue) { throw new ServiceException(OperationCodes.ResourceNotFound, $"User with id: {@event.UserId} cannot be found"); } var culture = GetCulture(user.Value.Culture); var settings = UserNotificationSettings.Create(@event.UserId, user.Value.Email, user.Value.Name, culture); await _settingsService.UpdateSettingsAsync(settings); }) .OnError((ex, logger) => logger.Error(ex, $"Error while handling user SignedUp event, userId: {@event.UserId}")) .ExecuteAsync(); }
public async Task HandleAsync(SignedUp @event) { await _handler .Run(async() => { var user = await _userServiceClient.GetAsync <User>(@event.UserId); user.Value.FavoriteRemarks = new HashSet <Guid>(); user.Value.Groups = new HashSet <UserGroup>(); user.Value.Organizations = new HashSet <UserOrganization>(); await _repository.AddAsync(user.Value); await _accountStateService.SetAsync(user.Value.UserId, user.Value.State); await _cache.AddAsync(user.Value); }) .OnError((ex, logger) => { logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event"); }) .ExecuteAsync(); }
public async Task <Maybe <User> > GetAsync(string userId) => await _providerClient.GetAsync( async() => await _userRepository.GetByIdAsync(userId), async() => await _userServiceClient.GetAsync <User>(userId));