private static async Task ConfigureEventStoreContext(EventStoreContext storeDb)
        {
            var storeDbExist = await DbHealthChecker.CheckTableExists <StoredEvent>(storeDb);

            if (!storeDbExist)
            {
                await storeDb.Database.MigrateAsync();
            }
        }
        private static async Task ValidateIs4Context(JpDatabaseOptions options, JPProjectAdminUIContext id4AdminUiContext)
        {
            var configurationDatabaseExist = await DbHealthChecker.CheckTableExists <Client>(id4AdminUiContext);

            var operationalDatabaseExist = await DbHealthChecker.CheckTableExists <PersistedGrant>(id4AdminUiContext);

            var isDatabaseExist = configurationDatabaseExist && operationalDatabaseExist;

            if (!isDatabaseExist && options.MustThrowExceptionIfDatabaseDontExist)
            {
                throw new DatabaseNotFoundException("IdentityServer4 Database doesn't exist. Ensure it was created before.'");
            }
        }
        public static async Task EnsureSeedData(IServiceProvider serviceProvider)
        {
            await DbMigrationHelpers.CheckDatabases(serviceProvider, new JpDatabaseOptions()
            {
                MustThrowExceptionIfDatabaseDontExist = true
            });

            using var scope = serviceProvider.GetRequiredService <IServiceScopeFactory>().CreateScope();

            var eventStoreDb = scope.ServiceProvider.GetRequiredService <EventStoreContext>();
            var storeDbExist = await DbHealthChecker.CheckTableExists <StoredEvent>(eventStoreDb);

            if (!storeDbExist)
            {
                await eventStoreDb.Database.MigrateAsync();
            }
        }