using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using RSecurityBackend.Models.Audit.Db; using RSecurityBackend.Models.Auth.Db; using RSecurityBackend.Models.Image; using System; namespace RSecurityBackend.DbContext { /// /// Security EF DbContext /// public class RSecurityDbContext : IdentityDbContext where TUser : IdentityUser where TRole : IdentityRole where TKey : IEquatable { /// /// parameterless constructor /// public RSecurityDbContext() : base() { } /// /// delete db /// public void DeleteDb() { Database.EnsureDeleted(); } /// /// /// /// protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); //https://stackoverflow.com/a/34013431/66657 builder.Entity() .HasIndex(u => u.Secret) .IsUnique(); } #region Auth /// /// Permissions /// public DbSet Permissions { get; set; } /// /// User Sessions /// public DbSet Sessions { get; set; } /// /// Signup Queue Items /// public DbSet VerifyQueueItems { get; set; } /// /// General Images /// public DbSet GeneralImages { get; set; } /// /// Captcha Images /// public DbSet CaptchaImages { get; set; } #endregion #region Audit /// /// Audit Logs Events /// public DbSet AuditLogs { get; set; } #endregion } }