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);
            }
        }
Example #2
0
 public UsersController(IUserService userService, ICachedObjectProvider <int> cachedObjectProvider)
 {
     this.userService          = userService;
     this.cachedObjectProvider = cachedObjectProvider;
 }