using Edge.Core.Database.Configuration.Models; using Edge.Core.Database.Models; using Microsoft.EntityFrameworkCore; namespace Edge.Core.Database { /// <summary> /// this type is injected into IServiceProvider by lifetime of Scoped: services.AddScoped<SqliteDbContext>() /// so, retrieve an instance of this DbContext by always create your own scope, and dispose it when done. /// otherwise, a global shared one would be retrieved. /// </summary> public class SqliteDbContext : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=liteFccCore_sqlite_database.db"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.Owner }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.Type }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.State }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.CreatedTimeStamp }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.ModifiedTimeStamp }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty0 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty1 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty2 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty3 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty4 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty5 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty6 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty7 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty8 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.IntProperty9 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty0 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty1 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty2 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty3 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty4 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty5 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty6 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty7 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty8 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.DoubleProperty9 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty0 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty1 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty2 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty3 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty4 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty5 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty6 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty7 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty8 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.StrProperty9 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.TimeStampProperty0 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.TimeStampProperty1 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.TimeStampProperty2 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.TimeStampProperty3 }) .IsUnique(false); modelBuilder.Entity<GenericData>() .HasIndex(p => new { p.TimeStampProperty4 }) .IsUnique(false); modelBuilder.Entity<ProcessorMetaConfigDbModel>() .HasIndex(p => new { p.Name }) .IsUnique(true); modelBuilder.Entity<ProcessorMetaConfigDbModel>() .HasIndex(p => new { p.TimeStamp }) .IsUnique(false); modelBuilder.Entity<ProcessorMetaPartsMetaConfigDbModel>() .HasIndex(p => new { p.ProcessorMetaConfigId, p.Type }) .IsUnique(true); modelBuilder.Entity<GenericAlarmDbModel>() .HasIndex(p => new { p.Severity }) .IsUnique(false); modelBuilder.Entity<GenericAlarmDbModel>() .HasIndex(p => new { p.HiddenData }) .IsUnique(false); modelBuilder.Entity<GenericAlarmDbModel>() .HasIndex(p => new { p.Category, p.SubCategory }) .IsUnique(false); modelBuilder.Entity<GenericAlarmDbModel>() .HasIndex(p => new { p.OpeningTimestamp }) .IsUnique(false); modelBuilder.Entity<GenericAlarmDbModel>() .HasIndex(p => new { p.ClosedTimestamp }) .IsUnique(false); modelBuilder.Entity<GenericAlarmDbModel>() .HasIndex(p => new { p.ProcessorEndpointFullTypeStr }) .IsUnique(false); modelBuilder.Entity<GenericAlarmDbModel>() .HasIndex(p => new { p.OriginatorDisplayName, p.OpeningTimestamp, p.ClosedTimestamp }) .IsUnique(false); } public DbSet<FuelPointReservation> FuelPointReservationModels { get; set; } public DbSet<FuelSaleTransaction> PumpTransactionModels { get; set; } public DbSet<FuelPriceChange> FuelPriceChanges { get; set; } public DbSet<GenericData> GenericDatas { get; set; } public DbSet<GenericAlarmDbModel> GenericAlarms { get; set; } public DbSet<ProcessorMetaConfigDbModel> ProcessorMetaConfigs { get; set; } public DbSet<ProcessorMetaPartsMetaConfigDbModel> ProcessorMetaPartsMetaConfigs { get; set; } } }