protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { int count; using (var scope = this.serviceScopeFactory.CreateScope()) { IGenericRepository <Users> usersRepo = scope.ServiceProvider.GetRequiredService <IGenericRepository <Users> >(); count = await usersRepo.Count(); ICachedObjectProvider <int> cachedObjectProvider = scope.ServiceProvider.GetRequiredService <ICachedObjectProvider <int> >(); cachedObjectProvider.Set(Constants.TotalUserCount, count, TimeSpan.FromMinutes(this.minutesToCache)); } await Task.Delay(TimeSpan.FromMinutes(this.refreshInterval), stoppingToken); } }
public UsersController(IUserService userService, ICachedObjectProvider <int> cachedObjectProvider) { this.userService = userService; this.cachedObjectProvider = cachedObjectProvider; }