@@ -51,16 +51,14 @@ internal sealed partial class PayloadAssembler : IPayloadAssembler, IDisposable,
51
51
private readonly Task _intializedTask ;
52
52
private readonly BlockingCollection < Payload > _workItems ;
53
53
private readonly System . Timers . Timer _timer ;
54
- private readonly IPayloadRepository _repository ;
54
+ // private readonly IPayloadRepository _repository;
55
55
56
56
public PayloadAssembler (
57
57
ILogger < PayloadAssembler > logger ,
58
58
IServiceScopeFactory serviceScopeFactory )
59
59
{
60
60
_logger = logger ?? throw new ArgumentNullException ( nameof ( logger ) ) ;
61
61
_serviceScopeFactory = serviceScopeFactory ?? throw new ArgumentNullException ( nameof ( serviceScopeFactory ) ) ;
62
- var scope = _serviceScopeFactory . CreateScope ( ) ;
63
- _repository = scope . ServiceProvider . GetRequiredService < IPayloadRepository > ( ) ;
64
62
65
63
_workItems = [ ] ;
66
64
_tokenSource = new CancellationTokenSource ( ) ;
@@ -85,7 +83,9 @@ public PayloadAssembler(
85
83
private async Task RemovePendingPayloads ( )
86
84
{
87
85
_logger . RemovingPendingPayloads ( ) ;
88
- var removed = await _repository . RemovePendingPayloadsAsync ( ) . ConfigureAwait ( false ) ;
86
+ var scope = _serviceScopeFactory . CreateScope ( ) ;
87
+ var repository = scope . ServiceProvider . GetRequiredService < IPayloadRepository > ( ) ;
88
+ var removed = await repository . RemovePendingPayloadsAsync ( ) . ConfigureAwait ( false ) ;
89
89
90
90
_logger . TotalNumberOfPayloadsRemoved ( removed ) ;
91
91
}
@@ -200,7 +200,9 @@ private async Task QueueBucketForNotification(string key, Payload payload)
200
200
{
201
201
payload . State = Payload . PayloadState . Move ;
202
202
var scope = _serviceScopeFactory . CreateScope ( ) ;
203
- await _repository . UpdateAsync ( payload ) . ConfigureAwait ( false ) ;
203
+
204
+ var repository = scope . ServiceProvider . GetRequiredService < IPayloadRepository > ( ) ;
205
+ await repository . UpdateAsync ( payload ) . ConfigureAwait ( false ) ;
204
206
_logger . PayloadSaved ( payload . PayloadId ) ;
205
207
_workItems . Add ( payload ) ;
206
208
_logger . BucketReady ( key , payload . Count ) ;
@@ -227,7 +229,9 @@ private async Task<Payload> CreateOrGetPayload(string key, string correlationId,
227
229
private async Task < Payload > PayloadFactory ( string key , string correlationId , string ? workflowInstanceId , string ? taskId , Messaging . Events . DataOrigin dataOrigin , uint timeout , CancellationToken cancellationToken )
228
230
{
229
231
var newPayload = new Payload ( key , correlationId , workflowInstanceId , taskId , dataOrigin , timeout , null ) ;
230
- await _repository . AddAsync ( newPayload , cancellationToken ) . ConfigureAwait ( false ) ;
232
+ var scope = _serviceScopeFactory . CreateScope ( ) ;
233
+ var repository = scope . ServiceProvider . GetRequiredService < IPayloadRepository > ( ) ;
234
+ await repository . AddAsync ( newPayload , cancellationToken ) . ConfigureAwait ( false ) ;
231
235
_logger . BucketCreated ( key , timeout ) ;
232
236
return newPayload ;
233
237
}
0 commit comments