Files
2023-08-01 08:12:35 +02:00

56 lines
2.0 KiB
C#

using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NLog;
using NLog.Fluent;
using YamlDotNet.Serialization;
namespace WebDoorCreator.Data
{
public class ApplicationDbContext : IdentityDbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
private IConfiguration _configuration { get; set; } = null!;
public ApplicationDbContext()
{
Log.Info($"ApplicationDbContext Init");
try
{
// se non ci fosse... crea o migra!
Database.Migrate();
}
catch (Exception exc)
{
Log.Error($"Exc during ApplicationDbContext() init:{Environment.NewLine}{exc}");
}
}
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IConfiguration configuration) : base(options)
{
_configuration = configuration;
// verifico SE devo eseguire la migration del DB IDENT...
bool disableMigrate = _configuration.GetValue<bool>("SetupOpt:DisableIdentMigrate");
if (!disableMigrate)
{
try
{
// se non ci fosse... crea o migra!
Database.Migrate();
}
catch (Exception exc)
{
Log.Error($"Exc during ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IConfiguration configuration) init:{Environment.NewLine}{exc}");
}
}
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
//builder.ApplyConfiguration(new RoleConfiguration());
//builder.ApplyConfiguration(new UserConfiguration());
//builder.ApplyConfiguration(new UserRolesConfiguration());
}
}
}