From 90d77be847093b921acf3743c001db309a6f37d4 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Fri, 26 Nov 2021 14:58:19 -0600 Subject: [PATCH] =?UTF-8?q?refactor(dir):=20=E2=99=BB=20lint=20FilterListV?= =?UTF-8?q?alueObject?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Aggregates/Changes/FilterListChange.cs | 14 ++--- .../FilterLists/FilterListRecord.cs | 39 ------------ .../FilterLists/FilterListValueObject.cs | 60 +++++++++++++++++++ 3 files changed, 67 insertions(+), 46 deletions(-) delete mode 100644 services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListRecord.cs create mode 100644 services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs index dab6ca721..6ba5cc0fb 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs @@ -2,30 +2,30 @@ namespace FilterLists.Directory.Domain.Aggregates.Changes; -public class FilterListChange : Change, IChangeAggregate +public class FilterListChange : Change, IChangeAggregate { protected FilterListChange() { } - public FilterListRecord? Before { get; private init; } - public FilterListRecord? After { get; private init; } + public FilterListValueObject? Before { get; private init; } + public FilterListValueObject? After { get; private init; } public static FilterListChange Create(FilterList filterList, string? reason) { - return new FilterListChange { After = FilterListRecord.FromFilterList(filterList), Reason = reason }; + return new FilterListChange { After = FilterListValueObject.FromFilterList(filterList), Reason = reason }; } public static FilterListChange Update(FilterList before, FilterList after, string? reason) { return new FilterListChange { - Before = FilterListRecord.FromFilterList(before), - After = FilterListRecord.FromFilterList(after), + Before = FilterListValueObject.FromFilterList(before), + After = FilterListValueObject.FromFilterList(after), Reason = reason }; } public static FilterListChange Delete(FilterList filterList, string? reason) { - return new FilterListChange { Before = FilterListRecord.FromFilterList(filterList), Reason = reason }; + return new FilterListChange { Before = FilterListValueObject.FromFilterList(filterList), Reason = reason }; } } diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListRecord.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListRecord.cs deleted file mode 100644 index fe0abb81f..000000000 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListRecord.cs +++ /dev/null @@ -1,39 +0,0 @@ -using FilterLists.Directory.Domain.Aggregates.Licenses; - -namespace FilterLists.Directory.Domain.Aggregates.FilterLists; - -public record FilterListRecord( - string Name, - string? Description, - License License, - IEnumerable ViewUrls, - Uri? HomeUrl, - Uri? OnionUrl, - Uri? PolicyUrl, - Uri? SubmissionUrl, - Uri? IssuesUrl, - Uri? ForumUrl, - Uri? ChatUrl, - string? EmailAddress, - Uri? DonateUrl -) -{ - public static FilterListRecord FromFilterList(FilterList filterList) - { - return new FilterListRecord( - filterList.Name, - filterList.Description, - filterList.License, - filterList.ViewUrls, - filterList.HomeUrl, - filterList.OnionUrl, - filterList.PolicyUrl, - filterList.SubmissionUrl, - filterList.IssuesUrl, - filterList.ForumUrl, - filterList.ChatUrl, - filterList.EmailAddress, - filterList.DonateUrl - ); - } -} diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs new file mode 100644 index 000000000..ca529771b --- /dev/null +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs @@ -0,0 +1,60 @@ +using FilterLists.SharedKernel.Domain.SeedWork; + +namespace FilterLists.Directory.Domain.Aggregates.FilterLists; + +public class FilterListValueObject : ValueObject +{ + public string Name { get; private init; } = default!; + public string? Description { get; private init; } + public long LicenseId { get; private init; } + public IEnumerable ViewUrlIds { get; private init; } = new HashSet(); + public Uri? HomeUrl { get; private init; } + public Uri? OnionUrl { get; private init; } + public Uri? PolicyUrl { get; private init; } + public Uri? SubmissionUrl { get; private init; } + public Uri? IssuesUrl { get; private init; } + public Uri? ForumUrl { get; private init; } + public Uri? ChatUrl { get; private init; } + public string? EmailAddress { get; private init; } + public Uri? DonateUrl { get; private init; } + + public static FilterListValueObject FromFilterList(FilterList filterList) + { + return new FilterListValueObject + { + Name = filterList.Name, + Description = filterList.Description, + LicenseId = filterList.License.Id, + ViewUrlIds = filterList.ViewUrls.Select(u => u.Id), + HomeUrl = filterList.HomeUrl, + OnionUrl = filterList.OnionUrl, + PolicyUrl = filterList.PolicyUrl, + SubmissionUrl = filterList.SubmissionUrl, + IssuesUrl = filterList.IssuesUrl, + ForumUrl = filterList.ForumUrl, + ChatUrl = filterList.ChatUrl, + EmailAddress = filterList.EmailAddress, + DonateUrl = filterList.DonateUrl + }; + } + + protected override IEnumerable GetEqualityComponents() + { + yield return Name; + yield return Description; + yield return LicenseId; + foreach (long viewUrlId in ViewUrlIds) + { + yield return viewUrlId; + } + yield return HomeUrl; + yield return OnionUrl; + yield return PolicyUrl; + yield return SubmissionUrl; + yield return IssuesUrl; + yield return ForumUrl; + yield return ChatUrl; + yield return EmailAddress; + yield return DonateUrl; + } +}