Files
magman/MagMan.Data/UserIdentityDbContext.cs
T
2023-12-27 11:47:45 +01:00

80 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using MagMan.Data.DbModels;
namespace MagMan.Data
{
public class UserIdentityDbContext : IdentityDbContext
{
#region Public Constructors
public UserIdentityDbContext()
{
try
{
// se non ci fosse... crea o migra!
Database.Migrate();
}
catch (Exception exc)
{ }
}
public UserIdentityDbContext(DbContextOptions<UserIdentityDbContext> options)
: base(options)
{
#if false
// se non ci fosse... crea!
Database.EnsureCreated();
#endif
try
{
// se non ci fosse... crea o migra!
Database.Migrate();
}
catch (Exception exc)
{ }
}
#endregion Public Constructors
#region Public Properties
public DbSet<TableCount> DbSetCounts { get; set; }
#endregion Public Properties
#region Protected Methods
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string connString = DbConfig.CONNECTION_STRING;
if (!optionsBuilder.IsConfigured)
{
var serverVersion = ServerVersion.AutoDetect(connString);
optionsBuilder.UseMySql(connString, serverVersion);
}
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// aggiunta ruoli
builder.ApplyConfiguration(new UserRoleConfiguration());
// aggiunta user admin base
builder.ApplyConfiguration(new UserAdminConfiguration());
// Todo: aggiungere configurazione claims oltre ai roles...
}
#endregion Protected Methods
}
}