@@ -30,10 +30,6 @@ public sealed class LtdRaffleGrain(
3030 IOptions < CatalogConfig > config
3131) : Grain , ILtdRaffleGrain
3232{
33- private readonly IGrainFactory _grainFactory = grainFactory ;
34- private readonly IDbContextFactory < TurboDbContext > _dbCtxFactory = dbCtxFactory ;
35- private readonly ILogger < LtdRaffleGrain > _logger = logger ;
36- private readonly ICatalogService _catalogService = catalogService ;
3733 private readonly CatalogConfig _config = config . Value ;
3834
3935 private readonly Dictionary < int , double > _currentBatchEntries = [ ] ;
@@ -63,13 +59,13 @@ public async Task<LtdRaffleEntryResult> EnterRaffleAsync(int playerId, Cancellat
6359 ) ;
6460 }
6561
66- var snap = _catalogService . GetCatalogSnapshot ( CatalogType . Normal ) ;
62+ var snap = catalogService . GetCatalogSnapshot ( CatalogType . Normal ) ;
6763 var product = snap . ProductsById . Values . FirstOrDefault ( p => p . LtdSeriesId == _series . Id ) ;
6864
6965 if ( product == null || ! snap . OffersById . TryGetValue ( product . OfferId , out var offer ) )
7066 return LtdRaffleEntryResult . Failed ( LtdRaffleEntryError . None ) ;
7167
72- var walletGrain = _grainFactory . GetPlayerWalletGrain ( playerId ) ;
68+ var walletGrain = grainFactory . GetPlayerWalletGrain ( playerId ) ;
7369 var credits = await walletGrain . GetAmountForCurrencyAsync (
7470 new CurrencyKind { CurrencyType = CurrencyType . Credits } ,
7571 ct
@@ -109,7 +105,7 @@ public async Task<LtdRaffleEntryResult> EnterRaffleAsync(int playerId, Cancellat
109105
110106 if ( _config . LtdRaffle . LimitOnePerCustomer )
111107 {
112- await using var dbCtx = await _dbCtxFactory . CreateDbContextAsync ( ct ) ;
108+ await using var dbCtx = await dbCtxFactory . CreateDbContextAsync ( ct ) ;
113109
114110 var alreadyWon = await dbCtx . LtdRaffleEntries . AnyAsync (
115111 e =>
@@ -144,7 +140,7 @@ public async Task<LtdRaffleEntryResult> EnterRaffleAsync(int playerId, Cancellat
144140 _currentBatchEntries [ playerId ] = await CalculateWeightAsync ( playerId , ct ) ;
145141 await PersistEntryAsync ( playerId , _currentBatchId , ct ) ;
146142
147- await _grainFactory
143+ await grainFactory
148144 . GetPlayerPresenceGrain ( playerId )
149145 . SendComposerAsync (
150146 new LtdRaffleEnteredMessageComposer { ClassName = product . ClassName ?? "LTD" }
@@ -191,7 +187,7 @@ private async Task ExecuteRaffleAsync()
191187
192188 private async Task < bool > TryFinalizeWinnerAsync ( int playerId , string ? batchId , bool isRaffle )
193189 {
194- await using var dbCtx = await _dbCtxFactory . CreateDbContextAsync ( ) ;
190+ await using var dbCtx = await dbCtxFactory . CreateDbContextAsync ( ) ;
195191 await using var tx = await dbCtx . Database . BeginTransactionAsync ( ) ;
196192
197193 try
@@ -204,14 +200,14 @@ private async Task<bool> TryFinalizeWinnerAsync(int playerId, string? batchId, b
204200 . OrderBy ( x => x . Id )
205201 . FirstOrDefaultAsync ( ) ;
206202
207- if ( series == null || series . RemainingQuantity <= 0 )
203+ if ( series is not { RemainingQuantity : > 0 } )
208204 return false ;
209205
210- var snap = _catalogService . GetCatalogSnapshot ( CatalogType . Normal ) ;
206+ var snap = catalogService . GetCatalogSnapshot ( CatalogType . Normal ) ;
211207 var prod = snap . ProductsById . Values . First ( p => p . LtdSeriesId == series . Id ) ;
212208 var offer = snap . OffersById [ prod . OfferId ] ;
213209
214- var debitResult = await _grainFactory
210+ var debitResult = await grainFactory
215211 . GetPlayerWalletGrain ( playerId )
216212 . TryDebitAsync ( BuildDebits ( offer ) , CancellationToken . None ) ;
217213
@@ -246,7 +242,7 @@ private async Task<bool> TryFinalizeWinnerAsync(int playerId, string? batchId, b
246242 await dbCtx . SaveChangesAsync ( ) ;
247243 await tx . CommitAsync ( ) ;
248244
249- await _grainFactory
245+ await grainFactory
250246 . GetInventoryGrain ( playerId )
251247 . GrantLtdFurnitureAsync (
252248 series . CatalogProductEntityId ,
@@ -257,7 +253,7 @@ await _grainFactory
257253
258254 if ( isRaffle )
259255 {
260- await _grainFactory
256+ await grainFactory
261257 . GetPlayerPresenceGrain ( playerId )
262258 . SendComposerAsync (
263259 new LtdRaffleResultMessageComposer
@@ -272,7 +268,7 @@ await _grainFactory
272268 }
273269 catch ( Exception ex )
274270 {
275- _logger . LogError (
271+ logger . LogError (
276272 ex ,
277273 "Failed to finalize LTD raffle winner for player {PlayerId} in series {SeriesId}" ,
278274 playerId ,
@@ -331,7 +327,7 @@ private static List<WalletDebitRequest> BuildDebits(CatalogOfferSnapshot offer)
331327
332328 private async Task < double > CalculateWeightAsync ( int playerId , CancellationToken ct )
333329 {
334- var playerGrain = _grainFactory . GetPlayerGrain ( PlayerId . Parse ( playerId ) ) ;
330+ var playerGrain = grainFactory . GetPlayerGrain ( PlayerId . Parse ( playerId ) ) ;
335331 var summary = await playerGrain . GetSummaryAsync ( ct ) ;
336332 var profile = await playerGrain . GetExtendedProfileSnapshotAsync ( ct ) ;
337333
@@ -345,7 +341,7 @@ private async Task<double> CalculateWeightAsync(int playerId, CancellationToken
345341
346342 if ( needsDbQuery )
347343 {
348- await using var db = await _dbCtxFactory . CreateDbContextAsync ( ct ) ;
344+ await using var db = await dbCtxFactory . CreateDbContextAsync ( ct ) ;
349345
350346 if ( cfg . BadgeCount . Enabled )
351347 {
@@ -435,7 +431,7 @@ private static HashSet<int> SelectWeighted(List<KeyValuePair<int, double>> entri
435431
436432 public async Task ReloadSeriesAsync ( CancellationToken ct )
437433 {
438- await using var db = await _dbCtxFactory . CreateDbContextAsync ( ct ) ;
434+ await using var db = await dbCtxFactory . CreateDbContextAsync ( ct ) ;
439435
440436 var entity = await db
441437 . LtdSeries . AsNoTracking ( )
@@ -461,7 +457,7 @@ public async Task ReloadSeriesAsync(CancellationToken ct)
461457
462458 private async Task PersistFinishedAsync ( )
463459 {
464- await using var db = await _dbCtxFactory . CreateDbContextAsync ( ) ;
460+ await using var db = await dbCtxFactory . CreateDbContextAsync ( ) ;
465461
466462 await db
467463 . LtdSeries . Where ( s => s . Id == ( int ) this . GetPrimaryKeyLong ( ) )
@@ -470,11 +466,11 @@ await db
470466
471467 private async Task NotifyLoserAsync ( int playerId , LtdRaffleResultCode resultCode )
472468 {
473- var product = _catalogService
469+ var product = catalogService
474470 . GetCatalogSnapshot ( CatalogType . Normal )
475471 . ProductsById . Values . FirstOrDefault ( p => p . LtdSeriesId == _series ? . Id ) ;
476472
477- await _grainFactory
473+ await grainFactory
478474 . GetPlayerPresenceGrain ( playerId )
479475 . SendComposerAsync (
480476 new LtdRaffleResultMessageComposer
@@ -487,7 +483,7 @@ await _grainFactory
487483
488484 private async Task PersistEntryAsync ( int playerId , string batchId , CancellationToken ct )
489485 {
490- await using var db = await _dbCtxFactory . CreateDbContextAsync ( ct ) ;
486+ await using var db = await dbCtxFactory . CreateDbContextAsync ( ct ) ;
491487
492488 db . LtdRaffleEntries . Add (
493489 new LtdRaffleEntryEntity
0 commit comments