public async Task Run() { var users = await _queryProcessor.Process(new GetUsersQuery(), default); users .AsParallel() .ForAll(user => _userCacheService.PutUser(user)); _backgroundJobClientService.Schedule <IPopulateUserCacheJob>(x => x.Run(), TimeSpan.FromMinutes(9)); }
public async Task AddUser(string username) { if (_userCacheService.GetUser(username) == null) { _userCacheService.PutUser(new UserPersistanceDTO { Name = username }); if (await _queryProcessor.Process(new GetUserQuery { Name = username }, default) == null) { await _commandDispatcher.Dispatch(new AddUserCommand { Name = username }, default); } } }