Esempio n. 1
0
        private async Task DeleteUnmonitoredPlayersNotInAClan()
        {
            using var scope = Services.CreateScope();

            CacheContext dbContext = scope.ServiceProvider.GetRequiredService <CacheContext>();

            // delete any player who is not being monitored so stale items dont get stuck in cache
            List <CachedPlayer> cachedPlayers = await dbContext.Players
                                                .Where(p =>
                                                       p.ClanTag == null &&
                                                       p.Download == false &&
                                                       p.ServerExpiration < DateTime.UtcNow.AddMinutes(-10))
                                                .ToListAsync(_stopRequestedTokenSource.Token);

            dbContext.RemoveRange(cachedPlayers);

            await dbContext.SaveChangesAsync(_stopRequestedTokenSource.Token);
        }