From 1198ca56d43f7025b9fb7ca0c52e789d98d7b8a2 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Tue, 18 Feb 2020 19:15:19 -0600 Subject: [PATCH] resolve CA1062 warnings, rm Jetbrains.Annotations from Data proj --- .../FilterLists.Data/Entities/BaseEntity.cs | 2 +- .../FilterLists.Data/Entities/FilterList.cs | 2 - .../src/FilterLists.Data/Entities/Language.cs | 2 - .../src/FilterLists.Data/Entities/License.cs | 2 - .../FilterLists.Data/Entities/Maintainer.cs | 2 - .../src/FilterLists.Data/Entities/Software.cs | 2 - .../src/FilterLists.Data/Entities/Syntax.cs | 2 - .../BaseEntityTypeConfiguration.cs | 34 ++++---- .../FilterListTypeConfiguration.cs | 86 ++++++++++--------- .../BaseJunctionTypeConfiguration.cs | 18 ++-- .../Junctions/DependentTypeConfiguration.cs | 24 +++--- .../FilterListLanguageTypeConfiguration.cs | 24 +++--- .../FilterListMaintainerTypeConfiguration.cs | 24 +++--- .../FilterListTagTypeConfiguration.cs | 24 +++--- .../Junctions/ForkTypeConfiguration.cs | 24 +++--- .../Junctions/MergeTypeConfiguration.cs | 24 +++--- .../SnapshotRuleTypeConfiguration.cs | 26 +++--- .../SoftwareSyntaxTypeConfiguration.cs | 24 +++--- .../LanguageTypeConfiguration.cs | 52 +++++------ .../LicenseTypeConfiguration.cs | 20 +++-- .../MaintainerTypeConfiguration.cs | 32 +++---- .../RuleTypeConfiguration.cs | 22 ++--- .../SnapshotTypeConfiguration.cs | 32 +++---- .../SoftwareTypeConfiguration.cs | 24 +++--- .../SyntaxTypeConfiguration.cs | 20 +++-- .../TagTypeConfiguration.cs | 20 +++-- .../FilterLists.Data/FilterLists.Data.csproj | 1 - 27 files changed, 297 insertions(+), 272 deletions(-) diff --git a/server/src/FilterLists.Data/Entities/BaseEntity.cs b/server/src/FilterLists.Data/Entities/BaseEntity.cs index d67ea71a5..4fd5cb3d9 100644 --- a/server/src/FilterLists.Data/Entities/BaseEntity.cs +++ b/server/src/FilterLists.Data/Entities/BaseEntity.cs @@ -5,7 +5,7 @@ namespace FilterLists.Data.Entities public abstract class BaseEntity : IBaseEntity { public int Id { get; set; } - public DateTime? CreatedDateUtc { get; set; } public DateTime? ModifiedDateUtc { get; set; } + public DateTime? CreatedDateUtc { get; set; } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/Entities/FilterList.cs b/server/src/FilterLists.Data/Entities/FilterList.cs index bb6146450..141402714 100644 --- a/server/src/FilterLists.Data/Entities/FilterList.cs +++ b/server/src/FilterLists.Data/Entities/FilterList.cs @@ -1,11 +1,9 @@ using System; using System.Collections.Generic; using FilterLists.Data.Entities.Junctions; -using JetBrains.Annotations; namespace FilterLists.Data.Entities { - [UsedImplicitly] public class FilterList : BaseEntity { public string ChatUrl { get; set; } diff --git a/server/src/FilterLists.Data/Entities/Language.cs b/server/src/FilterLists.Data/Entities/Language.cs index 3eccc4970..178aca1ae 100644 --- a/server/src/FilterLists.Data/Entities/Language.cs +++ b/server/src/FilterLists.Data/Entities/Language.cs @@ -1,10 +1,8 @@ using System.Collections.Generic; using FilterLists.Data.Entities.Junctions; -using JetBrains.Annotations; namespace FilterLists.Data.Entities { - [UsedImplicitly] public class Language : BaseEntity { public ICollection FilterListLanguages { get; set; } diff --git a/server/src/FilterLists.Data/Entities/License.cs b/server/src/FilterLists.Data/Entities/License.cs index 6defde9db..fecc22fce 100644 --- a/server/src/FilterLists.Data/Entities/License.cs +++ b/server/src/FilterLists.Data/Entities/License.cs @@ -1,9 +1,7 @@ using System.Collections.Generic; -using JetBrains.Annotations; namespace FilterLists.Data.Entities { - [UsedImplicitly] public class License : BaseEntity { public string DescriptionUrl { get; set; } diff --git a/server/src/FilterLists.Data/Entities/Maintainer.cs b/server/src/FilterLists.Data/Entities/Maintainer.cs index 2dd3bc563..64b6f46e9 100644 --- a/server/src/FilterLists.Data/Entities/Maintainer.cs +++ b/server/src/FilterLists.Data/Entities/Maintainer.cs @@ -1,10 +1,8 @@ using System.Collections.Generic; using FilterLists.Data.Entities.Junctions; -using JetBrains.Annotations; namespace FilterLists.Data.Entities { - [UsedImplicitly] public class Maintainer : BaseEntity { public string EmailAddress { get; set; } diff --git a/server/src/FilterLists.Data/Entities/Software.cs b/server/src/FilterLists.Data/Entities/Software.cs index d4c928c9d..d1df81d2c 100644 --- a/server/src/FilterLists.Data/Entities/Software.cs +++ b/server/src/FilterLists.Data/Entities/Software.cs @@ -1,10 +1,8 @@ using System.Collections.Generic; using FilterLists.Data.Entities.Junctions; -using JetBrains.Annotations; namespace FilterLists.Data.Entities { - [UsedImplicitly] public class Software : BaseEntity { public string DownloadUrl { get; set; } diff --git a/server/src/FilterLists.Data/Entities/Syntax.cs b/server/src/FilterLists.Data/Entities/Syntax.cs index d677c1609..7a25dabe3 100644 --- a/server/src/FilterLists.Data/Entities/Syntax.cs +++ b/server/src/FilterLists.Data/Entities/Syntax.cs @@ -1,10 +1,8 @@ using System.Collections.Generic; using FilterLists.Data.Entities.Junctions; -using JetBrains.Annotations; namespace FilterLists.Data.Entities { - [UsedImplicitly] public class Syntax : BaseEntity { public string DefinitionUrl { get; set; } diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/BaseEntityTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/BaseEntityTypeConfiguration.cs index 3f401ed22..4cb0e5b5c 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/BaseEntityTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/BaseEntityTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using FilterLists.Data.Seed.Extensions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -7,22 +8,23 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class BaseEntityTypeConfiguration : IEntityTypeConfiguration where TEntity : BaseEntity { - public virtual void Configure(EntityTypeBuilder entityTypeBuilder) + public virtual void Configure(EntityTypeBuilder builder) { - entityTypeBuilder.Property(x => x.Id) - .UseMySqlIdentityColumn() - .HasColumnType("SMALLINT"); - entityTypeBuilder.Property(x => x.CreatedDateUtc) - .HasColumnType("TIMESTAMP") - .ValueGeneratedOnAdd() - .IsRequired() - .HasDefaultValueSql("current_timestamp()"); - entityTypeBuilder.Property(x => x.ModifiedDateUtc) - .HasColumnType("TIMESTAMP") - .ValueGeneratedOnAddOrUpdate() - .IsRequired() - .HasDefaultValueSql("current_timestamp() ON UPDATE current_timestamp()"); - entityTypeBuilder.HasDataJsonFile(); + Guard.Against.Null(builder, nameof(builder)); + builder.Property(x => x.Id) + .UseMySqlIdentityColumn() + .HasColumnType("SMALLINT"); + builder.Property(x => x.CreatedDateUtc) + .HasColumnType("TIMESTAMP") + .ValueGeneratedOnAdd() + .IsRequired() + .HasDefaultValueSql("current_timestamp()"); + builder.Property(x => x.ModifiedDateUtc) + .HasColumnType("TIMESTAMP") + .ValueGeneratedOnAddOrUpdate() + .IsRequired() + .HasDefaultValueSql("current_timestamp() ON UPDATE current_timestamp()"); + builder.HasDataJsonFile(); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/FilterListTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/FilterListTypeConfiguration.cs index f8706e32b..7c88e1777 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/FilterListTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/FilterListTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,48 +7,49 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class FilterListTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("filterlists"); - entityTypeBuilder.Property(x => x.ChatUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.Description) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.DescriptionSourceUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.DonateUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.EmailAddress) - .HasColumnType("VARCHAR(126)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.ForumUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.HomeUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.IssuesUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.LicenseId) - .HasDefaultValue(5); - entityTypeBuilder.Property(x => x.Name) - .HasColumnType("VARCHAR(126)") - .IsRequired(); - entityTypeBuilder.Property(x => x.PolicyUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.PublishedDate) - .HasColumnType("DATETIME") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.SubmissionUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.UpdatedDate) - .HasColumnType("DATETIME") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.ViewUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.ViewUrlMirror1) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.ViewUrlMirror2) - .HasColumnType("TEXT"); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("filterlists"); + builder.Property(x => x.ChatUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.Description) + .HasColumnType("TEXT"); + builder.Property(x => x.DescriptionSourceUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.DonateUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.EmailAddress) + .HasColumnType("VARCHAR(126)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.ForumUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.HomeUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.IssuesUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.LicenseId) + .HasDefaultValue(5); + builder.Property(x => x.Name) + .HasColumnType("VARCHAR(126)") + .IsRequired(); + builder.Property(x => x.PolicyUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.PublishedDate) + .HasColumnType("DATETIME") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.SubmissionUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.UpdatedDate) + .HasColumnType("DATETIME") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.ViewUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.ViewUrlMirror1) + .HasColumnType("TEXT"); + builder.Property(x => x.ViewUrlMirror2) + .HasColumnType("TEXT"); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/BaseJunctionTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/BaseJunctionTypeConfiguration.cs index 3a4a9f1bb..c01ba29f1 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/BaseJunctionTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/BaseJunctionTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using FilterLists.Data.Seed.Extensions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -8,14 +9,15 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions public class BaseJunctionTypeConfiguration : IEntityTypeConfiguration where TJunction : BaseJunctionEntity { - public virtual void Configure(EntityTypeBuilder entityTypeBuilder) + public virtual void Configure(EntityTypeBuilder builder) { - entityTypeBuilder.Property(x => x.CreatedDateUtc) - .HasColumnType("TIMESTAMP") - .ValueGeneratedOnAdd() - .IsRequired() - .HasDefaultValueSql("current_timestamp()"); - entityTypeBuilder.HasDataJsonFile(); + Guard.Against.Null(builder, nameof(builder)); + builder.Property(x => x.CreatedDateUtc) + .HasColumnType("TIMESTAMP") + .ValueGeneratedOnAdd() + .IsRequired() + .HasDefaultValueSql("current_timestamp()"); + builder.HasDataJsonFile(); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/DependentTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/DependentTypeConfiguration.cs index 23716717b..18764ac61 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/DependentTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/DependentTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class DependentTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("dependents"); - entityTypeBuilder.HasKey(x => new {x.DependentFilterListId, x.DependencyFilterListId}); - entityTypeBuilder.HasOne(x => x.DependentFilterList) - .WithMany(x => x.DependentFilterLists) - .HasForeignKey(x => x.DependentFilterListId); - entityTypeBuilder.HasOne(x => x.DependencyFilterList) - .WithMany(x => x.DependencyFilterLists) - .HasForeignKey(x => x.DependencyFilterListId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("dependents"); + builder.HasKey(x => new {x.DependentFilterListId, x.DependencyFilterListId}); + builder.HasOne(x => x.DependentFilterList) + .WithMany(x => x.DependentFilterLists) + .HasForeignKey(x => x.DependentFilterListId); + builder.HasOne(x => x.DependencyFilterList) + .WithMany(x => x.DependencyFilterLists) + .HasForeignKey(x => x.DependencyFilterListId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListLanguageTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListLanguageTypeConfiguration.cs index 75d3c65ce..2ad631db7 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListLanguageTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListLanguageTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class FilterListLanguageTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("filterlists_languages"); - entityTypeBuilder.HasKey(x => new {x.FilterListId, x.LanguageId}); - entityTypeBuilder.HasOne(x => x.FilterList) - .WithMany(x => x.FilterListLanguages) - .HasForeignKey(x => x.FilterListId); - entityTypeBuilder.HasOne(x => x.Language) - .WithMany(x => x.FilterListLanguages) - .HasForeignKey(x => x.LanguageId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("filterlists_languages"); + builder.HasKey(x => new {x.FilterListId, x.LanguageId}); + builder.HasOne(x => x.FilterList) + .WithMany(x => x.FilterListLanguages) + .HasForeignKey(x => x.FilterListId); + builder.HasOne(x => x.Language) + .WithMany(x => x.FilterListLanguages) + .HasForeignKey(x => x.LanguageId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListMaintainerTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListMaintainerTypeConfiguration.cs index eb36c24bc..22511480d 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListMaintainerTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListMaintainerTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class FilterListMaintainerTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("filterlists_maintainers"); - entityTypeBuilder.HasKey(x => new {x.FilterListId, x.MaintainerId}); - entityTypeBuilder.HasOne(x => x.FilterList) - .WithMany(x => x.FilterListMaintainers) - .HasForeignKey(x => x.FilterListId); - entityTypeBuilder.HasOne(x => x.Maintainer) - .WithMany(x => x.FilterListMaintainers) - .HasForeignKey(x => x.MaintainerId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("filterlists_maintainers"); + builder.HasKey(x => new {x.FilterListId, x.MaintainerId}); + builder.HasOne(x => x.FilterList) + .WithMany(x => x.FilterListMaintainers) + .HasForeignKey(x => x.FilterListId); + builder.HasOne(x => x.Maintainer) + .WithMany(x => x.FilterListMaintainers) + .HasForeignKey(x => x.MaintainerId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListTagTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListTagTypeConfiguration.cs index 8fcdcd03c..60e978e35 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListTagTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/FilterListTagTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class FilterListTagTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("filterlists_tags"); - entityTypeBuilder.HasKey(x => new {x.FilterListId, x.TagId}); - entityTypeBuilder.HasOne(x => x.FilterList) - .WithMany(x => x.FilterListTags) - .HasForeignKey(x => x.FilterListId); - entityTypeBuilder.HasOne(x => x.Tag) - .WithMany(x => x.FilterListTags) - .HasForeignKey(x => x.TagId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("filterlists_tags"); + builder.HasKey(x => new {x.FilterListId, x.TagId}); + builder.HasOne(x => x.FilterList) + .WithMany(x => x.FilterListTags) + .HasForeignKey(x => x.FilterListId); + builder.HasOne(x => x.Tag) + .WithMany(x => x.FilterListTags) + .HasForeignKey(x => x.TagId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/ForkTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/ForkTypeConfiguration.cs index c1b6e9abd..1e40883c4 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/ForkTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/ForkTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class ForkTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("forks"); - entityTypeBuilder.HasKey(x => new {x.ForkFilterListId, x.UpstreamFilterListId}); - entityTypeBuilder.HasOne(x => x.ForkFilterList) - .WithMany(x => x.ForkFilterLists) - .HasForeignKey(x => x.ForkFilterListId); - entityTypeBuilder.HasOne(x => x.UpstreamFilterList) - .WithMany(x => x.UpstreamForkFilterLists) - .HasForeignKey(x => x.UpstreamFilterListId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("forks"); + builder.HasKey(x => new {x.ForkFilterListId, x.UpstreamFilterListId}); + builder.HasOne(x => x.ForkFilterList) + .WithMany(x => x.ForkFilterLists) + .HasForeignKey(x => x.ForkFilterListId); + builder.HasOne(x => x.UpstreamFilterList) + .WithMany(x => x.UpstreamForkFilterLists) + .HasForeignKey(x => x.UpstreamFilterListId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/MergeTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/MergeTypeConfiguration.cs index c527526ce..07902a2ef 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/MergeTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/MergeTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class MergeTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("merges"); - entityTypeBuilder.HasKey(x => new {x.MergeFilterListId, x.UpstreamFilterListId}); - entityTypeBuilder.HasOne(x => x.MergeFilterList) - .WithMany(x => x.MergeFilterLists) - .HasForeignKey(x => x.MergeFilterListId); - entityTypeBuilder.HasOne(x => x.UpstreamFilterList) - .WithMany(x => x.UpstreamMergeFilterLists) - .HasForeignKey(x => x.UpstreamFilterListId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("merges"); + builder.HasKey(x => new {x.MergeFilterListId, x.UpstreamFilterListId}); + builder.HasOne(x => x.MergeFilterList) + .WithMany(x => x.MergeFilterLists) + .HasForeignKey(x => x.MergeFilterListId); + builder.HasOne(x => x.UpstreamFilterList) + .WithMany(x => x.UpstreamMergeFilterLists) + .HasForeignKey(x => x.UpstreamFilterListId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SnapshotRuleTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SnapshotRuleTypeConfiguration.cs index 0d6adfbef..01ee4c266 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SnapshotRuleTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SnapshotRuleTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,18 +7,19 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class SnapshotRuleTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("snapshots_rules"); - entityTypeBuilder.HasKey(x => new {x.SnapshotId, x.RuleId}); - entityTypeBuilder.Ignore(x => x.CreatedDateUtc); - entityTypeBuilder.HasOne(x => x.Snapshot) - .WithMany(x => x.SnapshotRules) - .HasForeignKey(x => x.SnapshotId); - entityTypeBuilder.HasOne(x => x.Rule) - .WithMany(x => x.SnapshotRules) - .HasForeignKey(x => x.RuleId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("snapshots_rules"); + builder.HasKey(x => new {x.SnapshotId, x.RuleId}); + builder.Ignore(x => x.CreatedDateUtc); + builder.HasOne(x => x.Snapshot) + .WithMany(x => x.SnapshotRules) + .HasForeignKey(x => x.SnapshotId); + builder.HasOne(x => x.Rule) + .WithMany(x => x.SnapshotRules) + .HasForeignKey(x => x.RuleId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SoftwareSyntaxTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SoftwareSyntaxTypeConfiguration.cs index 1d54dac9b..668b78c48 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SoftwareSyntaxTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/Junctions/SoftwareSyntaxTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities.Junctions; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities.Junctions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations.Junctions { public class SoftwareSyntaxTypeConfiguration : BaseJunctionTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("software_syntaxes"); - entityTypeBuilder.HasKey(x => new {x.SyntaxId, x.SoftwareId}); - entityTypeBuilder.HasOne(x => x.Software) - .WithMany(x => x.SoftwareSyntaxes) - .HasForeignKey(x => x.SoftwareId); - entityTypeBuilder.HasOne(x => x.Syntax) - .WithMany(x => x.SoftwareSyntaxes) - .HasForeignKey(x => x.SyntaxId); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("software_syntaxes"); + builder.HasKey(x => new {x.SyntaxId, x.SoftwareId}); + builder.HasOne(x => x.Software) + .WithMany(x => x.SoftwareSyntaxes) + .HasForeignKey(x => x.SoftwareId); + builder.HasOne(x => x.Syntax) + .WithMany(x => x.SoftwareSyntaxes) + .HasForeignKey(x => x.SyntaxId); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs index 7afad32ce..8e928ff5b 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,31 +7,32 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class LanguageTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("languages"); - entityTypeBuilder.Property(x => x.Iso6391) - .HasColumnType("VARCHAR(2)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.Iso6392) - .HasColumnType("VARCHAR(3)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.Iso6392B) - .HasColumnType("VARCHAR(3)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.Iso6392T) - .HasColumnType("VARCHAR(3)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.Iso6393) - .HasColumnType("VARCHAR(3)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.LocalName) - .HasColumnType("VARCHAR(126)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.Name) - .HasColumnType("VARCHAR(126)") - .HasDefaultValueSql("NULL"); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("languages"); + builder.Property(x => x.Iso6391) + .HasColumnType("VARCHAR(2)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.Iso6392) + .HasColumnType("VARCHAR(3)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.Iso6392B) + .HasColumnType("VARCHAR(3)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.Iso6392T) + .HasColumnType("VARCHAR(3)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.Iso6393) + .HasColumnType("VARCHAR(3)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.LocalName) + .HasColumnType("VARCHAR(126)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.Name) + .HasColumnType("VARCHAR(126)") + .HasDefaultValueSql("NULL"); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/LicenseTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/LicenseTypeConfiguration.cs index 89d543cf3..e955302ba 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/LicenseTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/LicenseTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,15 +7,16 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class LicenseTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("licenses"); - entityTypeBuilder.Property(x => x.DescriptionUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.Name) - .HasColumnType("VARCHAR(126)") - .IsRequired(); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("licenses"); + builder.Property(x => x.DescriptionUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.Name) + .HasColumnType("VARCHAR(126)") + .IsRequired(); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/MaintainerTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/MaintainerTypeConfiguration.cs index 4f37dc804..ffa82760b 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/MaintainerTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/MaintainerTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,21 +7,22 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class MaintainerTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("maintainers"); - entityTypeBuilder.Property(x => x.EmailAddress) - .HasColumnType("VARCHAR(126)") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.HomeUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.Name) - .HasColumnType("VARCHAR(126)") - .IsRequired(); - entityTypeBuilder.Property(x => x.TwitterHandle) - .HasColumnType("VARCHAR(126)") - .HasDefaultValueSql("NULL"); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("maintainers"); + builder.Property(x => x.EmailAddress) + .HasColumnType("VARCHAR(126)") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.HomeUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.Name) + .HasColumnType("VARCHAR(126)") + .IsRequired(); + builder.Property(x => x.TwitterHandle) + .HasColumnType("VARCHAR(126)") + .HasDefaultValueSql("NULL"); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/RuleTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/RuleTypeConfiguration.cs index a1dd027c7..e64e641aa 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/RuleTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/RuleTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,16 +7,17 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class RuleTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("rules"); - entityTypeBuilder.Property(x => x.Id) - .HasColumnType("INT"); - entityTypeBuilder.Ignore(x => x.ModifiedDateUtc); - entityTypeBuilder.Property(x => x.Raw) - .HasColumnType("LONGTEXT") - .IsRequired(); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("rules"); + builder.Property(x => x.Id) + .HasColumnType("INT"); + builder.Ignore(x => x.ModifiedDateUtc); + builder.Property(x => x.Raw) + .HasColumnType("LONGTEXT") + .IsRequired(); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/SnapshotTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/SnapshotTypeConfiguration.cs index c82022abc..f42ad10d8 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/SnapshotTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/SnapshotTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,21 +7,22 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class SnapshotTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("snapshots"); - entityTypeBuilder.Property(x => x.Id) - .HasColumnType("MEDIUMINT"); - entityTypeBuilder.Property(x => x.HttpStatusCode) - .HasColumnType("SMALLINT") - .HasDefaultValueSql("NULL"); - entityTypeBuilder.Property(x => x.Md5Checksum) - .HasColumnType("BINARY(16)"); - entityTypeBuilder.Property(x => x.WaybackTimestamp) - .HasColumnType("TIMESTAMP"); - entityTypeBuilder.Property(x => x.WaybackUrl) - .HasColumnType("TEXT"); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("snapshots"); + builder.Property(x => x.Id) + .HasColumnType("MEDIUMINT"); + builder.Property(x => x.HttpStatusCode) + .HasColumnType("SMALLINT") + .HasDefaultValueSql("NULL"); + builder.Property(x => x.Md5Checksum) + .HasColumnType("BINARY(16)"); + builder.Property(x => x.WaybackTimestamp) + .HasColumnType("TIMESTAMP"); + builder.Property(x => x.WaybackUrl) + .HasColumnType("TEXT"); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/SoftwareTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/SoftwareTypeConfiguration.cs index 0c02e8fce..bcc9e03fb 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/SoftwareTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/SoftwareTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,17 +7,18 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class SoftwareTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("software"); - entityTypeBuilder.Property(x => x.DownloadUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.HomeUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.Name) - .HasColumnType("VARCHAR(126)") - .IsRequired(); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("software"); + builder.Property(x => x.DownloadUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.HomeUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.Name) + .HasColumnType("VARCHAR(126)") + .IsRequired(); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/SyntaxTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/SyntaxTypeConfiguration.cs index b1c84c3f0..25a24e480 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/SyntaxTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/SyntaxTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,15 +7,16 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class SyntaxTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("syntaxes"); - entityTypeBuilder.Property(x => x.DefinitionUrl) - .HasColumnType("TEXT"); - entityTypeBuilder.Property(x => x.Name) - .HasColumnType("VARCHAR(126)") - .IsRequired(); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("syntaxes"); + builder.Property(x => x.DefinitionUrl) + .HasColumnType("TEXT"); + builder.Property(x => x.Name) + .HasColumnType("VARCHAR(126)") + .IsRequired(); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/EntityTypeConfigurations/TagTypeConfiguration.cs b/server/src/FilterLists.Data/EntityTypeConfigurations/TagTypeConfiguration.cs index 68c921cbf..41e12c86c 100644 --- a/server/src/FilterLists.Data/EntityTypeConfigurations/TagTypeConfiguration.cs +++ b/server/src/FilterLists.Data/EntityTypeConfigurations/TagTypeConfiguration.cs @@ -1,4 +1,5 @@ -using FilterLists.Data.Entities; +using Ardalis.GuardClauses; +using FilterLists.Data.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -6,15 +7,16 @@ namespace FilterLists.Data.EntityTypeConfigurations { public class TagTypeConfiguration : BaseEntityTypeConfiguration { - public override void Configure(EntityTypeBuilder entityTypeBuilder) + public override void Configure(EntityTypeBuilder builder) { - base.Configure(entityTypeBuilder); - entityTypeBuilder.ToTable("tags"); - entityTypeBuilder.Property(x => x.Name) - .HasColumnType("VARCHAR(126)") - .IsRequired(); - entityTypeBuilder.Property(x => x.Description) - .HasColumnType("TEXT"); + Guard.Against.Null(builder, nameof(builder)); + base.Configure(builder); + builder.ToTable("tags"); + builder.Property(x => x.Name) + .HasColumnType("VARCHAR(126)") + .IsRequired(); + builder.Property(x => x.Description) + .HasColumnType("TEXT"); } } } \ No newline at end of file diff --git a/server/src/FilterLists.Data/FilterLists.Data.csproj b/server/src/FilterLists.Data/FilterLists.Data.csproj index c64f127f1..22b3ddec7 100644 --- a/server/src/FilterLists.Data/FilterLists.Data.csproj +++ b/server/src/FilterLists.Data/FilterLists.Data.csproj @@ -16,7 +16,6 @@ - all runtime; build; native; contentfiles; analyzers; buildtransitive