diff --git a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs index 0b9773397..14deca558 100644 --- a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs +++ b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs @@ -1,8 +1,5 @@ -using System; -using System.Linq; -using System.Reflection; -using FilterLists.Data.Entities; -using FilterLists.Data.EntityMaps; +using FilterLists.Data.Entities; +using FilterLists.Data.EntityTypeConfigurations; using Microsoft.EntityFrameworkCore; namespace FilterLists.Data.Contexts @@ -20,19 +17,9 @@ public FilterListsDbContext(DbContextOptions options) protected override void OnModelCreating(ModelBuilder modelBuilder) { - RegisterMaps(modelBuilder); - } - - private static void RegisterMaps(ModelBuilder modelBuilder) - { - var entityMaps = typeof(FilterList).GetTypeInfo().Assembly.GetTypes().Where(type => - !string.IsNullOrWhiteSpace(type.Namespace) && typeof(IEntityMap).IsAssignableFrom(type) && - type.IsClass) - .ToList(); - - foreach (var entityMap in entityMaps) - Activator.CreateInstance(entityMap, BindingFlags.Public | BindingFlags.Instance, null, - new object[] {modelBuilder}, null); + modelBuilder.ApplyConfiguration(new FilterListConfiguration()); + modelBuilder.ApplyConfiguration(new MaintainerConfiguration()); + modelBuilder.ApplyConfiguration(new LanguageConfiguration()); } } } \ No newline at end of file diff --git a/src/FilterLists.Data/EntityMaps/FilterListMap.cs b/src/FilterLists.Data/EntityMaps/FilterListMap.cs deleted file mode 100644 index a00d415b8..000000000 --- a/src/FilterLists.Data/EntityMaps/FilterListMap.cs +++ /dev/null @@ -1,15 +0,0 @@ -using FilterLists.Data.Entities; -using Microsoft.EntityFrameworkCore; - -namespace FilterLists.Data.EntityMaps -{ - public class FilterListMap : IEntityMap - { - public FilterListMap(ModelBuilder modelBuilder) - { - modelBuilder.Entity() - .Property(b => b.CreatedDateUtc) - .HasDefaultValueSql("CURRENT_TIMESTAMP"); - } - } -} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityMaps/IEntityMap.cs b/src/FilterLists.Data/EntityMaps/IEntityMap.cs deleted file mode 100644 index 0d5af4baa..000000000 --- a/src/FilterLists.Data/EntityMaps/IEntityMap.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace FilterLists.Data.EntityMaps -{ - public interface IEntityMap - { - } -} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityMaps/LanguageMap.cs b/src/FilterLists.Data/EntityMaps/LanguageMap.cs deleted file mode 100644 index 6720d69cc..000000000 --- a/src/FilterLists.Data/EntityMaps/LanguageMap.cs +++ /dev/null @@ -1,15 +0,0 @@ -using FilterLists.Data.Entities; -using Microsoft.EntityFrameworkCore; - -namespace FilterLists.Data.EntityMaps -{ - public class LanguageMap : IEntityMap - { - public LanguageMap(ModelBuilder modelBuilder) - { - modelBuilder.Entity() - .Property(b => b.CreatedDateUtc) - .HasDefaultValueSql("CURRENT_TIMESTAMP"); - } - } -} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityMaps/MaintainerMap.cs b/src/FilterLists.Data/EntityMaps/MaintainerMap.cs deleted file mode 100644 index 4267a26f7..000000000 --- a/src/FilterLists.Data/EntityMaps/MaintainerMap.cs +++ /dev/null @@ -1,15 +0,0 @@ -using FilterLists.Data.Entities; -using Microsoft.EntityFrameworkCore; - -namespace FilterLists.Data.EntityMaps -{ - public class MaintainerMap : IEntityMap - { - public MaintainerMap(ModelBuilder modelBuilder) - { - modelBuilder.Entity() - .Property(b => b.CreatedDateUtc) - .HasDefaultValueSql("CURRENT_TIMESTAMP"); - } - } -} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/FilterListConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/FilterListConfiguration.cs new file mode 100644 index 000000000..382f68622 --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/FilterListConfiguration.cs @@ -0,0 +1,14 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class FilterListConfiguration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.Property(b => b.CreatedDateUtc).HasDefaultValueSql("CURRENT_TIMESTAMP"); + } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/LanguageConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/LanguageConfiguration.cs new file mode 100644 index 000000000..8c92044c9 --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/LanguageConfiguration.cs @@ -0,0 +1,14 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class LanguageConfiguration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.Property(b => b.CreatedDateUtc).HasDefaultValueSql("CURRENT_TIMESTAMP"); + } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/MaintainerConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/MaintainerConfiguration.cs new file mode 100644 index 000000000..6b5c10ac7 --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/MaintainerConfiguration.cs @@ -0,0 +1,14 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class MaintainerConfiguration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.Property(b => b.CreatedDateUtc).HasDefaultValueSql("CURRENT_TIMESTAMP"); + } + } +} \ No newline at end of file