mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
extract BaseJunction superclass
This commit is contained in:
parent
2fdb11ddcf
commit
1711171110
15 changed files with 58 additions and 66 deletions
9
src/FilterLists.Data/Entities/Junctions/BaseJunction.cs
Normal file
9
src/FilterLists.Data/Entities/Junctions/BaseJunction.cs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
using System;
|
||||
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
{
|
||||
public class BaseJunction
|
||||
{
|
||||
public DateTime CreatedDateUtc { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +1,7 @@
|
|||
using System;
|
||||
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
{
|
||||
public class FilterListLanguage
|
||||
public class FilterListLanguage : BaseJunction
|
||||
{
|
||||
public DateTime CreatedDateUtc { get; set; }
|
||||
|
||||
public int FilterListId { get; set; }
|
||||
public FilterList FilterList { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
using System;
|
||||
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
{
|
||||
public class FilterListMaintainer
|
||||
public class FilterListMaintainer : BaseJunction
|
||||
{
|
||||
public DateTime CreatedDateUtc { get; set; }
|
||||
|
||||
public int FilterListId { get; set; }
|
||||
public FilterList FilterList { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
using System;
|
||||
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
{
|
||||
public class FilterListRule
|
||||
public class FilterListRule : BaseJunction
|
||||
{
|
||||
public DateTime CreatedDateUtc { get; set; }
|
||||
|
||||
public int FilterListId { get; set; }
|
||||
public FilterList FilterList { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
using System;
|
||||
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
{
|
||||
public class Fork
|
||||
public class Fork : BaseJunction
|
||||
{
|
||||
public DateTime CreatedDateUtc { get; set; }
|
||||
|
||||
public int ForkFilterListId { get; set; }
|
||||
public FilterList ForkFilterList { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
using System;
|
||||
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
{
|
||||
public class Merge
|
||||
public class Merge : BaseJunction
|
||||
{
|
||||
public DateTime CreatedDateUtc { get; set; }
|
||||
|
||||
public int MergeFilterListId { get; set; }
|
||||
public FilterList MergeFilterList { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
using System;
|
||||
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
namespace FilterLists.Data.Entities.Junctions
|
||||
{
|
||||
public class SoftwareSyntax
|
||||
public class SoftwareSyntax : BaseJunction
|
||||
{
|
||||
public DateTime CreatedDateUtc { get; set; }
|
||||
|
||||
public int SoftwareId { get; set; }
|
||||
public Software Software { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
using FilterLists.Data.Entities.Junctions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
namespace FilterLists.Data.EntityTypeConfigurations.Junctions
|
||||
{
|
||||
public class JunctionBaseTypeConfiguration<TJunction> : IEntityTypeConfiguration<TJunction>
|
||||
where TJunction : BaseJunction
|
||||
{
|
||||
public virtual void Configure(EntityTypeBuilder<TJunction> entityTypeBuilder)
|
||||
{
|
||||
entityTypeBuilder.Property(x => x.CreatedDateUtc)
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,15 +4,13 @@
|
|||
|
||||
namespace FilterLists.Data.EntityTypeConfigurations.Junctions
|
||||
{
|
||||
public class FilterListLanguageTypeConfiguration : IEntityTypeConfiguration<FilterListLanguage>
|
||||
public class FilterListLanguageTypeConfiguration : JunctionBaseTypeConfiguration<FilterListLanguage>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<FilterListLanguage> entityTypeBuilder)
|
||||
public override void Configure(EntityTypeBuilder<FilterListLanguage> entityTypeBuilder)
|
||||
{
|
||||
base.Configure(entityTypeBuilder);
|
||||
entityTypeBuilder.ToTable("filterlists_languages");
|
||||
entityTypeBuilder.HasKey(x => new {x.FilterListId, x.LanguageId});
|
||||
entityTypeBuilder.Property(x => x.CreatedDateUtc)
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,15 +4,13 @@
|
|||
|
||||
namespace FilterLists.Data.EntityTypeConfigurations.Junctions
|
||||
{
|
||||
public class FilterListMaintainerTypeConfiguration : IEntityTypeConfiguration<FilterListMaintainer>
|
||||
public class FilterListMaintainerTypeConfiguration : JunctionBaseTypeConfiguration<FilterListMaintainer>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<FilterListMaintainer> entityTypeBuilder)
|
||||
public override void Configure(EntityTypeBuilder<FilterListMaintainer> entityTypeBuilder)
|
||||
{
|
||||
base.Configure(entityTypeBuilder);
|
||||
entityTypeBuilder.ToTable("filterlists_maintainers");
|
||||
entityTypeBuilder.HasKey(x => new {x.FilterListId, x.MaintainerId});
|
||||
entityTypeBuilder.Property(x => x.CreatedDateUtc)
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,15 +4,13 @@
|
|||
|
||||
namespace FilterLists.Data.EntityTypeConfigurations.Junctions
|
||||
{
|
||||
public class FilterListRuleTypeConfiguration : IEntityTypeConfiguration<FilterListRule>
|
||||
public class FilterListRuleTypeConfiguration : JunctionBaseTypeConfiguration<FilterListRule>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<FilterListRule> entityTypeBuilder)
|
||||
public override void Configure(EntityTypeBuilder<FilterListRule> entityTypeBuilder)
|
||||
{
|
||||
base.Configure(entityTypeBuilder);
|
||||
entityTypeBuilder.ToTable("filterlists_rules");
|
||||
entityTypeBuilder.HasKey(x => new {x.FilterListId, x.RuleId});
|
||||
entityTypeBuilder.Property(x => x.CreatedDateUtc)
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,15 +4,13 @@
|
|||
|
||||
namespace FilterLists.Data.EntityTypeConfigurations.Junctions
|
||||
{
|
||||
public class ForkTypeConfiguration : IEntityTypeConfiguration<Fork>
|
||||
public class ForkTypeConfiguration : JunctionBaseTypeConfiguration<Fork>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<Fork> entityTypeBuilder)
|
||||
public override void Configure(EntityTypeBuilder<Fork> entityTypeBuilder)
|
||||
{
|
||||
base.Configure(entityTypeBuilder);
|
||||
entityTypeBuilder.ToTable("forks");
|
||||
entityTypeBuilder.HasKey(x => new {x.ForkFilterListId, x.UpstreamFilterListId});
|
||||
entityTypeBuilder.Property(x => x.CreatedDateUtc)
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,15 +4,13 @@
|
|||
|
||||
namespace FilterLists.Data.EntityTypeConfigurations.Junctions
|
||||
{
|
||||
public class MergeTypeConfiguration : IEntityTypeConfiguration<Merge>
|
||||
public class MergeTypeConfiguration : JunctionBaseTypeConfiguration<Merge>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<Merge> entityTypeBuilder)
|
||||
public override void Configure(EntityTypeBuilder<Merge> entityTypeBuilder)
|
||||
{
|
||||
base.Configure(entityTypeBuilder);
|
||||
entityTypeBuilder.ToTable("merges");
|
||||
entityTypeBuilder.HasKey(x => new {x.MergeFilterListId, x.UpstreamFilterListId});
|
||||
entityTypeBuilder.Property(x => x.CreatedDateUtc)
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,15 +4,13 @@
|
|||
|
||||
namespace FilterLists.Data.EntityTypeConfigurations.Junctions
|
||||
{
|
||||
public class SoftwareSyntaxTypeConfiguration : IEntityTypeConfiguration<SoftwareSyntax>
|
||||
public class SoftwareSyntaxTypeConfiguration : JunctionBaseTypeConfiguration<SoftwareSyntax>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<SoftwareSyntax> entityTypeBuilder)
|
||||
public override void Configure(EntityTypeBuilder<SoftwareSyntax> entityTypeBuilder)
|
||||
{
|
||||
base.Configure(entityTypeBuilder);
|
||||
entityTypeBuilder.ToTable("software_syntaxes");
|
||||
entityTypeBuilder.HasKey(x => new {x.SoftwareId, x.SyntaxId});
|
||||
entityTypeBuilder.Property(x => x.CreatedDateUtc)
|
||||
.HasColumnType("TIMESTAMP")
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -85,6 +85,8 @@ private async Task AddOrUpdateRules(Snapshot snapshot)
|
|||
.Where(x => deletedRules.Select(y => y.Id).Contains(x.RuleId))
|
||||
.Where(x => x.FilterListId == snapshot.FilterListId));
|
||||
|
||||
//TODO: consider never removing FilterListsRules but rather marking a flag as deprecated to expose when rule was removed
|
||||
|
||||
if (newCurrentRules.Any() || deletedRules.Any())
|
||||
{
|
||||
var list = filterListsDbContext.FilterLists.FindAsync(snapshot.FilterListId).Result;
|
||||
|
|
|
|||
Loading…
Reference in a new issue