using System;
using Kyoo.Controllers;
using Microsoft.AspNetCore.Builder;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Unity;
using Unity.Injection;
using Unity.Lifetime;
using Unity.Resolution;
namespace Kyoo.Postgresql
{
///
/// A module to add postgresql capacity to the app.
///
public class PostgresModule : IPlugin
{
///
public string Slug => "postgresql";
///
public string Name => "Postgresql";
///
public string Description => "A database context for postgresql.";
///
public string[] Provides => new[]
{
$"{nameof(DatabaseContext)}:{nameof(PostgresContext)}"
};
///
public string[] Requires => Array.Empty();
///
public void Configure(IUnityContainer container, IConfiguration config, IApplicationBuilder app, bool debugMode)
{
// options.UseNpgsql(_configuration.GetDatabaseConnection());
// // // .EnableSensitiveDataLogging()
// // // .UseLoggerFactory(LoggerFactory.Create(builder => builder.AddConsole()));
container.RegisterFactory(_ =>
{
return new PostgresContext(config.GetDatabaseConnection(), debugMode);
});
}
}
}