From f633a4a6d00e8714a2829608d8c605ecd1f96800 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sun, 28 Nov 2021 09:50:32 -0600 Subject: [PATCH] =?UTF-8?q?refactor(dir):=20=E2=99=BB=20ren=20AggregateRoo?= =?UTF-8?q?t=20->=20EntityRequiringApproval=20in=20Query=20context?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{AggregateRoot.cs => EntityRequiringApproval.cs} | 8 ++++---- .../Persistence/Queries/Entities/FilterList.cs | 4 ++-- .../Persistence/Queries/Entities/Language.cs | 6 +++--- .../Persistence/Queries/Entities/License.cs | 6 +++--- .../Persistence/Queries/Entities/Maintainer.cs | 6 +++--- .../Persistence/Queries/Entities/Software.cs | 6 +++--- .../Persistence/Queries/Entities/Syntax.cs | 6 +++--- .../Persistence/Queries/Entities/Tag.cs | 6 +++--- .../Persistence/SeedExtensions.cs | 11 ++++++----- 9 files changed, 30 insertions(+), 29 deletions(-) rename services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/{AggregateRoot.cs => EntityRequiringApproval.cs} (50%) diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/AggregateRoot.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/EntityRequiringApproval.cs similarity index 50% rename from services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/AggregateRoot.cs rename to services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/EntityRequiringApproval.cs index 5b060ae19..e94461f03 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/AggregateRoot.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/EntityRequiringApproval.cs @@ -3,16 +3,16 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public abstract record AggregateRoot : Entity +public abstract record EntityRequiringApproval : Entity { // TODO: change 'set' to 'init' when no longer seeding from json public bool IsApproved { get; set; } } -internal abstract class AggregateRootTypeConfiguration : IEntityTypeConfiguration - where TAggregateRoot : AggregateRoot +internal abstract class EntityRequiringApprovalTypeConfiguration + : IEntityTypeConfiguration where TEntityRequiringApproval : EntityRequiringApproval { - public virtual void Configure(EntityTypeBuilder builder) + public virtual void Configure(EntityTypeBuilder builder) { builder.HasQueryFilter(e => e.IsApproved); } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs index ea16c2fa1..322af623f 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs @@ -3,7 +3,7 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public record FilterList : AggregateRoot +public record FilterList : EntityRequiringApproval { public string Name { get; init; } = default!; public string? Description { get; init; } @@ -32,7 +32,7 @@ public record FilterList : AggregateRoot public IEnumerable Changes { get; init; } = new HashSet(); } -internal class FilterListTypeConfiguration : AggregateRootTypeConfiguration +internal class FilterListTypeConfiguration : EntityRequiringApprovalTypeConfiguration { public override void Configure(EntityTypeBuilder builder) { diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs index 710238cbc..051f21603 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs @@ -3,7 +3,7 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public record Language : AggregateRoot +public record Language : EntityRequiringApproval { public string Iso6391 { get; init; } = default!; public string Name { get; init; } = default!; @@ -11,7 +11,7 @@ public record Language : AggregateRoot public IEnumerable Changes { get; init; } = new HashSet(); } -internal class LanguageTypeConfiguration : AggregateRootTypeConfiguration +internal class LanguageTypeConfiguration : EntityRequiringApprovalTypeConfiguration { public override void Configure(EntityTypeBuilder builder) { @@ -22,7 +22,7 @@ public override void Configure(EntityTypeBuilder builder) .IsUnique(); builder.HasIndex(l => l.Name) .IsUnique(); - builder.HasDataJsonFileAggregate(); + builder.HasDataJsonFileEntityRequiringApproval(); base.Configure(builder); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs index 1a9fbacc8..9c7789307 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs @@ -3,7 +3,7 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public record License : AggregateRoot +public record License : EntityRequiringApproval { public string Name { get; init; } = default!; public Uri? Url { get; init; } @@ -14,7 +14,7 @@ public record License : AggregateRoot public IEnumerable Changes { get; init; } = new HashSet(); } -internal class LicenseTypeConfiguration : AggregateRootTypeConfiguration +internal class LicenseTypeConfiguration : EntityRequiringApprovalTypeConfiguration { public override void Configure(EntityTypeBuilder builder) { @@ -26,7 +26,7 @@ public override void Configure(EntityTypeBuilder builder) .HasDefaultValue(false); builder.Property(l => l.PermitsCommercialUse) .HasDefaultValue(false); - builder.HasDataJsonFileAggregate(); + builder.HasDataJsonFileEntityRequiringApproval(); base.Configure(builder); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs index f11a61d76..52f1db4e6 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs @@ -2,7 +2,7 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public record Maintainer : AggregateRoot +public record Maintainer : EntityRequiringApproval { public string Name { get; init; } = default!; public Uri? Url { get; init; } @@ -12,13 +12,13 @@ public record Maintainer : AggregateRoot public IEnumerable Changes { get; init; } = new HashSet(); } -internal class MaintainerTypeConfiguration : AggregateRootTypeConfiguration +internal class MaintainerTypeConfiguration : EntityRequiringApprovalTypeConfiguration { public override void Configure(EntityTypeBuilder builder) { builder.HasIndex(m => m.Name) .IsUnique(); - builder.HasDataJsonFileAggregate(); + builder.HasDataJsonFileEntityRequiringApproval(); base.Configure(builder); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs index 729ff8650..ecf538915 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs @@ -3,7 +3,7 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public record Software : AggregateRoot +public record Software : EntityRequiringApproval { public string Name { get; init; } = default!; public string? Description { get; init; } @@ -14,7 +14,7 @@ public record Software : AggregateRoot public IEnumerable Changes { get; init; } = new HashSet(); } -internal class SoftwareTypeConfiguration : AggregateRootTypeConfiguration +internal class SoftwareTypeConfiguration : EntityRequiringApprovalTypeConfiguration { public override void Configure(EntityTypeBuilder builder) { @@ -22,7 +22,7 @@ public override void Configure(EntityTypeBuilder builder) .IsUnique(); builder.Property(s => s.SupportsAbpUrlScheme) .HasDefaultValue(false); - builder.HasDataJsonFileAggregate(); + builder.HasDataJsonFileEntityRequiringApproval(); base.Configure(builder); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs index 6545d52de..1e5cbecdc 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs @@ -2,7 +2,7 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public record Syntax : AggregateRoot +public record Syntax : EntityRequiringApproval { public string Name { get; init; } = default!; public string? Description { get; init; } @@ -12,13 +12,13 @@ public record Syntax : AggregateRoot public IEnumerable Changes { get; init; } = new HashSet(); } -internal class SyntaxTypeConfiguration : AggregateRootTypeConfiguration +internal class SyntaxTypeConfiguration : EntityRequiringApprovalTypeConfiguration { public override void Configure(EntityTypeBuilder builder) { builder.HasIndex(s => s.Name) .IsUnique(); - builder.HasDataJsonFileAggregate(); + builder.HasDataJsonFileEntityRequiringApproval(); base.Configure(builder); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs index c3771c19f..97707ab9b 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs @@ -2,7 +2,7 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; -public record Tag : AggregateRoot +public record Tag : EntityRequiringApproval { public string Name { get; init; } = default!; public string? Description { get; init; } @@ -10,13 +10,13 @@ public record Tag : AggregateRoot public IEnumerable Changes { get; init; } = new HashSet(); } -internal class TagTypeConfiguration : AggregateRootTypeConfiguration +internal class TagTypeConfiguration : EntityRequiringApprovalTypeConfiguration { public override void Configure(EntityTypeBuilder builder) { builder.HasIndex(t => t.Name) .IsUnique(); - builder.HasDataJsonFileAggregate(); + builder.HasDataJsonFileEntityRequiringApproval(); base.Configure(builder); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs index 2749e736a..fbda22cd3 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs @@ -5,7 +5,6 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using Npgsql; namespace FilterLists.Directory.Infrastructure.Persistence; @@ -26,8 +25,8 @@ public static async Task MigrateAsync(this IHost host) internal static class SeedConfigurationExtension { - public static void HasDataJsonFileAggregate(this EntityTypeBuilder entityTypeBuilder) - where TEntity : AggregateRoot + public static void HasDataJsonFileEntityRequiringApproval(this EntityTypeBuilder entityTypeBuilder) + where TEntity : EntityRequiringApproval { var entities = Deserialize(); if (entities.Count == 0) @@ -66,12 +65,14 @@ private static List Deserialize() } var entitiesJson = File.ReadAllText(path); - var entities = JsonSerializer.Deserialize>(entitiesJson, + var entities = JsonSerializer.Deserialize>( + entitiesJson, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); return entities is null ? new List() : entities.ToList(); } - private static void Approve(this TAggregateRoot entity) where TAggregateRoot : AggregateRoot + private static void Approve(this TEntityRequiringApproval entity) + where TEntityRequiringApproval : EntityRequiringApproval { entity.IsApproved = true; }