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 options, IConfiguration configuration) : base(options) { _configuration = configuration; // verifico SE devo eseguire la migration del DB IDENT... bool disableMigrate = _configuration.GetValue("SetupOpt:DisableIdentMigrate"); if (!disableMigrate) { try { // se non ci fosse... crea o migra! Database.Migrate(); } catch (Exception exc) { Log.Error($"Exc during ApplicationDbContext(DbContextOptions 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()); } } }