using PARR.EsppTemplateSync; namespace PARR.EsppTemplateSyncWorker { public class Worker : BackgroundService { private readonly ILogger _logger; private ITemplateSyncer? templateSyncer; private readonly IServiceProvider serviceProvider; public Worker( ILogger logger, IServiceProvider serviceProvider ) { _logger = logger; this.serviceProvider = serviceProvider; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { using var scope = serviceProvider.CreateScope(); var services = scope.ServiceProvider; templateSyncer = services.GetService(); if (templateSyncer != null) await templateSyncer.StartAsync(); } public override Task StopAsync(CancellationToken cancellationToken) { templateSyncer?.Stop(); return base.StopAsync(cancellationToken); } } }