Example #1
0
 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();
 }
Example #2
0
 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));