From b718fdde8bca46b729ee2059437230bff5105e1d Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Mon, 22 Nov 2021 15:06:18 -0600 Subject: [PATCH] =?UTF-8?q?feat(dir):=20=E2=9C=A8=20enable=20EF=20Core=20l?= =?UTF-8?q?azy=20loading=20for=20aggregate-to-aggregate=20r'ships?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Aggregates/Changes/FilterListChange.cs | 4 ++-- .../Aggregates/FilterLists/FilterList.cs | 10 +++++----- .../Aggregates/FilterLists/FilterListViewUrl.cs | 4 ++-- .../Aggregates/Licenses/License.cs | 4 ++-- .../ConfigurationExtensions.cs | 1 + .../FilterLists.Directory.Infrastructure.csproj | 1 + 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs index ab51648f5..dab6ca721 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs @@ -2,9 +2,9 @@ namespace FilterLists.Directory.Domain.Aggregates.Changes; -public sealed class FilterListChange : Change, IChangeAggregate +public class FilterListChange : Change, IChangeAggregate { - private FilterListChange() { } + protected FilterListChange() { } public FilterListRecord? Before { get; private init; } public FilterListRecord? After { get; private init; } diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs index cf5098ca2..1deec7dd4 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs @@ -3,15 +3,15 @@ namespace FilterLists.Directory.Domain.Aggregates.FilterLists; -public sealed class FilterList : IRequireChangeApproval +public class FilterList : IRequireChangeApproval { private ICollection _changes = new HashSet(); - private FilterList() { } + protected FilterList() { } public string Name { get; private init; } = null!; public string? Description { get; private init; } - public License License { get; private init; } = null!; + public virtual License License { get; private init; } = null!; public Uri? HomeUrl { get; private init; } public Uri? OnionUrl { get; private init; } public Uri? PolicyUrl { get; private init; } @@ -21,8 +21,8 @@ private FilterList() { } public Uri? ChatUrl { get; private init; } public string? EmailAddress { get; private init; } public Uri? DonateUrl { get; private init; } - public IReadOnlyCollection ViewUrls { get; private init; } = new HashSet(); - public IReadOnlyCollection Changes => (IReadOnlyCollection)_changes; + public virtual IReadOnlyCollection ViewUrls { get; private init; } = new HashSet(); + public virtual IReadOnlyCollection Changes => (IReadOnlyCollection)_changes; public static FilterList Create( string name, diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListViewUrl.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListViewUrl.cs index bbe6c1929..64c89dbf7 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListViewUrl.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListViewUrl.cs @@ -1,8 +1,8 @@ namespace FilterLists.Directory.Domain.Aggregates.FilterLists; -public sealed class FilterListViewUrl +public class FilterListViewUrl { - private FilterListViewUrl() { } + protected FilterListViewUrl() { } public short SegmentNumber { get; private init; } public short Primariness { get; private init; } diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs index bfd8c357b..fe375efce 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs @@ -1,8 +1,8 @@ namespace FilterLists.Directory.Domain.Aggregates.Licenses; -public sealed class License +public class License { - private License() { } + protected License() { } public string Name { get; private init; } = null!; public Uri? Url { get; private init; } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs b/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs index 7e7531b1a..3f5d22ebc 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs @@ -38,6 +38,7 @@ public static void AddInfrastructure(this IServiceCollection services, IConfigur { o.UseNpgsql(configuration.GetConnectionString("DirectoryConnection")) .UseSnakeCaseNamingConvention() + .UseLazyLoadingProxies() #if DEBUG .LogTo(Console.WriteLine, LogLevel.Information); o.EnableSensitiveDataLogging(); diff --git a/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj b/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj index 7d82668d4..834f40750 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj +++ b/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj @@ -18,6 +18,7 @@ +