Refactored event service injection
This commit is contained in:
@@ -20,7 +20,7 @@ public sealed class LateProjectEvent : IEvent
|
||||
}
|
||||
|
||||
public sealed class LateProjectEventHandler(IDbContextFactory<ApplicationDbContext> contextFactory,
|
||||
ICommunicationsService service) : INotificationHandler<LateProjectEvent>
|
||||
IServiceProvider provider) : INotificationHandler<LateProjectEvent>
|
||||
{
|
||||
readonly int lateDays = 3;
|
||||
|
||||
@@ -28,6 +28,9 @@ public sealed class LateProjectEventHandler(IDbContextFactory<ApplicationDbConte
|
||||
{
|
||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||
|
||||
var scope = provider.CreateScope().ServiceProvider;
|
||||
var service = scope.GetRequiredService<ICommunicationsService>();
|
||||
|
||||
var now = DateTime.UtcNow;
|
||||
var overdueCutoff = lateDays > 0 ? now.AddDays(-lateDays) : now;
|
||||
|
||||
|
||||
@@ -22,12 +22,15 @@ public sealed class NonCompliantProjectEvent : IEvent
|
||||
}
|
||||
|
||||
public sealed class NonCompliantProjectEventHandler(IDbContextFactory<ApplicationDbContext> contextFactory,
|
||||
ICommunicationsService service) : INotificationHandler<NonCompliantProjectEvent>
|
||||
IServiceProvider provider) : INotificationHandler<NonCompliantProjectEvent>
|
||||
{
|
||||
public async ValueTask Handle(NonCompliantProjectEvent notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||
|
||||
var scope = provider.CreateScope().ServiceProvider;
|
||||
var service = scope.GetRequiredService<ICommunicationsService>();
|
||||
|
||||
var now = DateTime.UtcNow;
|
||||
|
||||
// Fetch active/monitored projects with programme, portfolio, and award organisations
|
||||
|
||||
@@ -18,7 +18,7 @@ public sealed class ProcessEmailEvent : IEvent
|
||||
}
|
||||
|
||||
public sealed class ProcessEmailEventHandler(IDbContextFactory<ApplicationDbContext> contextFactory,
|
||||
IFeatureManager featureManager, EmailService emailService, ISkorubaUserService skorubaUserService) : INotificationHandler<ProcessEmailEvent>
|
||||
IServiceProvider provider, IFeatureManager featureManager) : INotificationHandler<ProcessEmailEvent>
|
||||
{
|
||||
const int maxBatch = 100;
|
||||
|
||||
@@ -26,6 +26,10 @@ public sealed class ProcessEmailEventHandler(IDbContextFactory<ApplicationDbCont
|
||||
{
|
||||
if (!await featureManager.IsEnabledAsync(FeatureEmailProcessor)) return;
|
||||
|
||||
var scope = provider.CreateScope().ServiceProvider;
|
||||
var emailService = scope.GetRequiredService<EmailService>();
|
||||
var skorubaUserService = scope.GetRequiredService<ISkorubaUserService>();
|
||||
|
||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||
|
||||
var outgoing = await context.Notifications.AsNoTracking()
|
||||
|
||||
Reference in New Issue
Block a user