|
|
|
@ -2,21 +2,13 @@ namespace Infrastructure.Seed;
|
|
|
|
|
|
|
|
|
|
public static class DatabaseContextExtensions
|
|
|
|
|
{
|
|
|
|
|
public static IServiceCollection GenerateTablesByClass<T>(this IServiceCollection services,
|
|
|
|
|
DatabaseSeed databaseSeed
|
|
|
|
|
) where T : class, new()
|
|
|
|
|
public static void GenerateTablesByClass<T>(this IServiceProvider services,
|
|
|
|
|
Action<DatabaseSeed>? seedBuilder = null) where T : class, new()
|
|
|
|
|
{
|
|
|
|
|
ArgumentNullException.ThrowIfNull(services);
|
|
|
|
|
var databaseSeed = services.GetRequiredService<DatabaseSeed>()
|
|
|
|
|
?? throw new ArgumentNullException($"{nameof(DatabaseSeed)} not found");
|
|
|
|
|
databaseSeed.GenerateTablesByClass<T>();
|
|
|
|
|
return services;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static IServiceCollection GenerateSeedAsync<T>(this IServiceCollection services,
|
|
|
|
|
DatabaseSeed databaseSeed, string seedFile)
|
|
|
|
|
where T : class, new()
|
|
|
|
|
{
|
|
|
|
|
ArgumentNullException.ThrowIfNull(services);
|
|
|
|
|
databaseSeed.GenerateSeedAsync<T>(seedFile);
|
|
|
|
|
return services;
|
|
|
|
|
seedBuilder?.Invoke(databaseSeed);
|
|
|
|
|
}
|
|
|
|
|
}
|