From ee4968a9e7b80e7185e7099b27c35ef986a1d30c Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sat, 22 Aug 2020 13:46:39 -0500 Subject: [PATCH] =?UTF-8?q?feat(directory):=20=E2=9C=A8=20configure=20requ?= =?UTF-8?q?ired=20vs=20optional=20query=20entity=20props?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FilterLists.sln.DotSettings | 9 ++-- .../Persistence/Queries/Entities/Dependent.cs | 4 +- .../Queries/Entities/FilterList.cs | 52 +++++++++---------- .../Queries/Entities/FilterListLanguage.cs | 4 +- .../Queries/Entities/FilterListMaintainer.cs | 4 +- .../Queries/Entities/FilterListSyntax.cs | 4 +- .../Queries/Entities/FilterListTag.cs | 4 +- .../Persistence/Queries/Entities/Fork.cs | 4 +- .../Persistence/Queries/Entities/Language.cs | 6 +-- .../Persistence/Queries/Entities/License.cs | 12 ++--- .../Queries/Entities/Maintainer.cs | 12 ++--- .../Persistence/Queries/Entities/Merge.cs | 4 +- .../Persistence/Queries/Entities/Software.cs | 14 ++--- .../Queries/Entities/SoftwareSyntax.cs | 4 +- .../Persistence/Queries/Entities/Syntax.cs | 12 ++--- .../Persistence/Queries/Entities/Tag.cs | 8 +-- .../Queries/Entities/ViewUrlMirror.cs | 6 +-- .../Queries/Entities/ViewUrlPartial.cs | 6 +-- 18 files changed, 85 insertions(+), 84 deletions(-) diff --git a/FilterLists.sln.DotSettings b/FilterLists.sln.DotSettings index 86be25e36..b82b4084a 100644 --- a/FilterLists.sln.DotSettings +++ b/FilterLists.sln.DotSettings @@ -1,7 +1,8 @@ - + NEVER False + True + True + True + True True \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Dependent.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Dependent.cs index d9108e4df..6197c25a9 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Dependent.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Dependent.cs @@ -2,7 +2,7 @@ { public class Dependent { - public FilterList DependencyFilterList { get; set; } - public FilterList DependentFilterList { get; set; } + public FilterList DependencyFilterList { get; } = null!; + public FilterList DependentFilterList { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs index dea4b60f6..0a8ede850 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterList.cs @@ -6,31 +6,31 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class FilterList : IHaveSurrogateKey { - public ushort Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public License License { get; set; } - public ICollection FilterListSyntaxes { get; set; } - public ICollection FilterListLanguages { get; set; } - public ICollection FilterListTags { get; set; } - public Uri ViewUrl { get; set; } - public ICollection ViewUrlPartials { get; set; } - public ICollection ViewUrlMirrors { get; set; } - public Uri HomeUrl { get; set; } - public Uri OnionUrl { get; set; } - public Uri PolicyUrl { get; set; } - public Uri SubmissionUrl { get; set; } - public Uri IssuesUrl { get; set; } - public Uri ForumUrl { get; set; } - public Uri ChatUrl { get; set; } - public string EmailAddress { get; set; } - public Uri DonateUrl { get; set; } - public ICollection FilterListMaintainers { get; set; } - public ICollection UpstreamFilterLists { get; set; } - public ICollection ForkFilterLists { get; set; } - public ICollection IncludedInFilterLists { get; set; } - public ICollection IncludesFilterLists { get; set; } - public ICollection DependencyFilterLists { get; set; } - public ICollection DependentFilterLists { get; set; } + public ushort Id { get; } + public string Name { get; } = null!; + public string? Description { get; } + public License? License { get; } + public ICollection FilterListSyntaxes { get; } = new HashSet(); + public ICollection FilterListLanguages { get; } = new HashSet(); + public ICollection FilterListTags { get; } = new HashSet(); + public Uri ViewUrl { get; } = null!; + public ICollection ViewUrlPartials { get; } = new HashSet(); + public ICollection ViewUrlMirrors { get; } = new HashSet(); + public Uri? HomeUrl { get; } + public Uri? OnionUrl { get; } + public Uri? PolicyUrl { get; } + public Uri? SubmissionUrl { get; } + public Uri? IssuesUrl { get; } + public Uri? ForumUrl { get; } + public Uri? ChatUrl { get; } + public string? EmailAddress { get; } + public Uri? DonateUrl { get; } + public ICollection FilterListMaintainers { get; } = new HashSet(); + public ICollection UpstreamFilterLists { get; } = new HashSet(); + public ICollection ForkFilterLists { get; } = new HashSet(); + public ICollection IncludedInFilterLists { get; } = new HashSet(); + public ICollection IncludesFilterLists { get; } = new HashSet(); + public ICollection DependencyFilterLists { get; } = new HashSet(); + public ICollection DependentFilterLists { get; } = new HashSet(); } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListLanguage.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListLanguage.cs index 04fd630ac..36fcd7005 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListLanguage.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListLanguage.cs @@ -2,7 +2,7 @@ { public class FilterListLanguage { - public FilterList FilterList { get; set; } - public Language Language { get; set; } + public FilterList FilterList { get; } = null!; + public Language Language { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListMaintainer.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListMaintainer.cs index 83f430816..8af5d6338 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListMaintainer.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListMaintainer.cs @@ -2,7 +2,7 @@ { public class FilterListMaintainer { - public FilterList FilterList { get; set; } - public Maintainer Maintainer { get; set; } + public FilterList FilterList { get; } = null!; + public Maintainer Maintainer { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListSyntax.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListSyntax.cs index 1cee939ed..0cce95e42 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListSyntax.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListSyntax.cs @@ -2,7 +2,7 @@ { public class FilterListSyntax { - public FilterList FilterList { get; set; } - public Syntax Syntax { get; set; } + public FilterList FilterList { get; } = null!; + public Syntax Syntax { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListTag.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListTag.cs index 2d6adc5f0..13b5eba72 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListTag.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/FilterListTag.cs @@ -2,7 +2,7 @@ { public class FilterListTag { - public FilterList FilterList { get; set; } - public Tag Tag { get; set; } + public FilterList FilterList { get; } = null!; + public Tag Tag { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Fork.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Fork.cs index 1426f77cf..0f3f10bc6 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Fork.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Fork.cs @@ -2,7 +2,7 @@ { public class Fork { - public FilterList UpstreamFilterList { get; set; } - public FilterList ForkFilterList { get; set; } + public FilterList UpstreamFilterList { get; } = null!; + public FilterList ForkFilterList { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs index 90b592c3d..84df7ab58 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Language.cs @@ -4,8 +4,8 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class Language { - public string Iso6391 { get; set; } - public string Name { get; set; } - public ICollection FilterListLanguages { get; set; } + public string Iso6391 { get; } = null!; + public string Name { get; } = null!; + public ICollection FilterListLanguages { get; } = new HashSet(); } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs index d548e367e..886c00513 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/License.cs @@ -4,12 +4,12 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { - public class License: IHaveSurrogateKey + public class License : IHaveSurrogateKey { - public ushort Id { get; set; } - public string GitHubKey { get; set; } - public string Name { get; set; } - public Uri Url { get; set; } - public ICollection FilterLists { get; set; } + public ushort Id { get; } + public string Name { get; } = null!; + public string? GitHubKey { get; } + public Uri? Url { get; } + public ICollection FilterLists { get; } = new HashSet(); } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs index fbe730e32..fd9996c77 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Maintainer.cs @@ -6,11 +6,11 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class Maintainer : IHaveSurrogateKey { - public ushort Id { get; set; } - public string Name { get; set; } - public Uri Url { get; set; } - public string EmailAddress { get; set; } - public string TwitterHandle { get; set; } - public ICollection FilterListMaintainers { get; set; } + public ushort Id { get; } + public string Name { get; } = null!; + public Uri? Url { get; } + public string? EmailAddress { get; } + public string? TwitterHandle { get; } + public ICollection FilterListMaintainers { get; } = new HashSet(); } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Merge.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Merge.cs index 03620b449..653ba7d26 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Merge.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Merge.cs @@ -2,7 +2,7 @@ { public class Merge { - public FilterList IncludedInFilterList { get; set; } - public FilterList IncludesFilterList { get; set; } + public FilterList IncludedInFilterList { get; } = null!; + public FilterList IncludesFilterList { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs index 7ceb9f096..81e354d0c 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Software.cs @@ -6,12 +6,12 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class Software : IHaveSurrogateKey { - public ushort Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public Uri HomeUrl { get; set; } - public Uri DownloadUrl { get; set; } - public bool SupportsAbpUrlScheme { get; set; } - public ICollection SoftwareSyntaxes { get; set; } + public ushort Id { get; } + public string Name { get; } = null!; + public string? Description { get; } + public Uri? HomeUrl { get; } + public Uri? DownloadUrl { get; } + public bool SupportsAbpUrlScheme { get; } + public ICollection SoftwareSyntaxes { get; } = new HashSet(); } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/SoftwareSyntax.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/SoftwareSyntax.cs index b859384e5..343e6b4c5 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/SoftwareSyntax.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/SoftwareSyntax.cs @@ -2,7 +2,7 @@ { public class SoftwareSyntax { - public Software Software { get; set; } - public Syntax Syntax { get; set; } + public Software Software { get; } = null!; + public Syntax Syntax { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs index 87d7f0e30..d8c862163 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Syntax.cs @@ -6,11 +6,11 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class Syntax : IHaveSurrogateKey { - public ushort Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public Uri Url { get; set; } - public ICollection FilterListSyntaxes { get; set; } - public ICollection SoftwareSyntaxes { get; set; } + public ushort Id { get; } + public string Name { get; } = null!; + public string? Description { get; } + public Uri? Url { get; } + public ICollection FilterListSyntaxes { get; } = new HashSet(); + public ICollection SoftwareSyntaxes { get; } = new HashSet(); } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs index 16e4e7bdf..e90d52c3b 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/Tag.cs @@ -5,9 +5,9 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class Tag : IHaveSurrogateKey { - public ushort Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public ICollection FilterListTags { get; set; } + public ushort Id { get; } + public string Name { get; } = null!; + public string? Description { get; } + public ICollection FilterListTags { get; } = new HashSet(); } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlMirror.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlMirror.cs index e2a333e08..80a6bac91 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlMirror.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlMirror.cs @@ -5,8 +5,8 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class ViewUrlMirror : IHaveSurrogateKey { - public ushort Id { get; set; } - public FilterList FilterList { get; set; } - public Uri Url { get; set; } + public ushort Id { get; } + public FilterList FilterList { get; } = null!; + public Uri Url { get; } = null!; } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlPartial.cs b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlPartial.cs index adc214736..e11f87843 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlPartial.cs +++ b/directory/src/FilterLists.Directory.Infrastructure/Persistence/Queries/Entities/ViewUrlPartial.cs @@ -4,8 +4,8 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Entities { public class ViewUrlPartial { - public FilterList FilterList { get; set; } - public ushort Position { get; set; } - public Uri Url { get; set; } + public FilterList FilterList { get; } = null!; + public ushort Position { get; } + public Uri Url { get; } = null!; } } \ No newline at end of file