Table of Contents

Constructor BoostExpiryService

Namespace
UsluzionicaServer.Infrastructure
Assembly
UsluzionicaServer.dll

BoostExpiryService(IServiceScopeFactory, DistributedLock, ILogger<BoostExpiryService>)

Background servis koji svakih sat vremena pronalazi i deaktivira istekle boostove.

Logika pri isticanju boosta: listing.BoostScore -= boost.TokensSpent / boost.DurationDays boost.IsActive = false

Ako listing više nema ni jednog aktivnog boosta: listing.IsBoosted = false listing.BoostScore = 0 (cleanup floating point ostataka) listing.BoostExpiresAt = null

Koristi IServiceScopeFactory jer je BackgroundService singleton a AppDbContext je scoped — ne smeju se mešati lifetime-ovi.

public BoostExpiryService(IServiceScopeFactory scopeFactory, DistributedLock locks, ILogger<BoostExpiryService> logger)

Parameters

scopeFactory IServiceScopeFactory
locks DistributedLock
logger ILogger<BoostExpiryService>