using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Sledgemapper.Api.Core.Entities; using Sledgemapper.Api.Models; using Sledgemapper.Entities; namespace Sledgemapper.Api.Infrastructure.Data { // public static class DbInitializer // { // public static void Initialize(SledgemapperDbContext context) // { // context.Database.EnsureCreated(); // } // } public class SledgemapperDbContext : IdentityDbContext { public DbSet Campaigns { get; set; } public DbSet MapLogs { get; set; } public DbSet Maps { get; set; } public DbSet Sessions { get; set; } public DbSet SessionUsers { get; set; } public DbSet Snapshots { get; set; } public DbSet Users { get; set; } public DbSet UserConnections { get; set; } public SledgemapperDbContext(DbContextOptions options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { // optionsBuilder. // options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName); // optionsBuilder.UseSqlite("Filename=SledgemapperDatabase.db", options => // { // options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName); // }); optionsBuilder.UseSqlite("Filename=Sledgemapper.db").UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); base.OnConfiguring(optionsBuilder); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().HasOne(e=>e.Owner); modelBuilder.Entity().HasMany(e=>e.InvitedUsers).WithMany(e=>e.Campaigns); modelBuilder.Entity() //Use your application user class here .ToTable( "Users" ); //Set the table name here // // Map table names // modelBuilder.Entity().ToTable("MapLog", "dbo"); // modelBuilder.Entity(entity => // { // entity.HasKey(e => e.MapLogId); // }); // modelBuilder.Entity().ToTable("Session", "dbo"); // modelBuilder.Entity(entity => // { // entity.HasKey(e => e.SessionId); // entity.HasIndex(e => e.SessionName).IsUnique(); // }); // modelBuilder.Entity().ToTable("UserConnection", "dbo"); // modelBuilder.Entity(entity => // { // entity.HasKey(e => e.UserConnectionId); // entity.HasIndex(e => e.UserId); // }); // modelBuilder.Entity().ToTable("SessionUser", "dbo"); // modelBuilder.Entity(entity => // { // entity.HasKey(e => e.SessionUserId); // entity.HasIndex(e => e.SessionId); // }); // modelBuilder.Entity().ToTable("Snapshot", "dbo"); // modelBuilder.Entity(entity => // { // entity.HasKey(e => e.SnapshotId); // }); base.OnModelCreating(modelBuilder); } } }