using System.Reflection;
using Elsa.EntityFrameworkCore.Common;
using Microsoft.EntityFrameworkCore;
using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure;
// ReSharper disable once CheckNamespace
namespace Elsa.EntityFrameworkCore.Extensions;
///
/// Contains extension methods for .
///
public static class DbContextOptionsBuilderExtensions
{
///
/// Configures Entity Framework Core with PostgreSQL.
///
public static DbContextOptionsBuilder UseElsaPostgreSql(this DbContextOptionsBuilder builder, Assembly migrationsAssembly, string connectionString,ElsaDbContextOptions? options = default, Action? configure = default) =>
builder
.UseElsaDbContextOptions(options)
.UseNpgsql(connectionString, db =>
{
db
.MigrationsAssembly(options.GetMigrationsAssemblyName(migrationsAssembly))
.MigrationsHistoryTable(options.GetMigrationsHistoryTableName(), options.GetSchemaName());
configure?.Invoke(db);
});
}