using OpenIddict.Sandbox.AspNetCore.Client.Models; namespace OpenIddict.Sandbox.AspNetCore.Client; public class Worker : IHostedService { private readonly IServiceProvider _serviceProvider; public Worker(IServiceProvider serviceProvider) => _serviceProvider = serviceProvider; public async Task StartAsync(CancellationToken cancellationToken) { var scope = _serviceProvider.CreateScope(); try { var context = scope.ServiceProvider.GetRequiredService(); await context.Database.EnsureCreatedAsync(cancellationToken); } finally { if (scope is IAsyncDisposable disposable) { await disposable.DisposeAsync(); } else { scope.Dispose(); } } } public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; }