diff --git a/.github/workflows/Build.yaml b/.github/workflows/Build.yaml index 7594aaf..d4d5708 100644 --- a/.github/workflows/Build.yaml +++ b/.github/workflows/Build.yaml @@ -4,11 +4,9 @@ env: JAVA_VERSION: 17 JAVA_DISTRIBUTION: microsoft DOTNET_VERSION: | - 3.1.x - 6.0.x - 7.0.x 8.0.x 9.0.x + 10.0.x DOTNET_BUILD_CONFIGURATION: Release SONAR_PATH: .\.sonar\scanner SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} @@ -29,18 +27,18 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v5 with: fetch-depth: 0 - name: Set up Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: java-version: ${{ env.JAVA_VERSION }} distribution: ${{ env.JAVA_DISTRIBUTION }} - name: Set up .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v5 with: dotnet-version: ${{ env.DOTNET_VERSION }} diff --git a/.github/workflows/Release.yaml b/.github/workflows/Release.yaml index a970688..a46c4f5 100644 --- a/.github/workflows/Release.yaml +++ b/.github/workflows/Release.yaml @@ -1,7 +1,7 @@ name: FluentValidation.AutoValidation [Release] env: - DOTNET_VERSION: 9.0.x + DOTNET_VERSION: 10.0.x DOTNET_BUILD_CONFIGURATION: Release DOTNET_PACKAGES_OUTPUT_DIRECTORY: .nuget NUGET_SOURCE: https://api.nuget.org/v3/index.json @@ -18,12 +18,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v5 with: fetch-depth: 0 - name: Set up .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v5 with: dotnet-version: ${{ env.DOTNET_VERSION }} diff --git a/Directory.Build.props b/Directory.Build.props index ff8f997..b7ebf93 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,5 +1,6 @@ + net8.0;net9.0;net10.0 enable 8.0 NU1701 diff --git a/FluentValidation.AutoValidation.Endpoints/FluentValidation.AutoValidation.Endpoints.csproj b/FluentValidation.AutoValidation.Endpoints/FluentValidation.AutoValidation.Endpoints.csproj index 5019ec4..44b56d1 100644 --- a/FluentValidation.AutoValidation.Endpoints/FluentValidation.AutoValidation.Endpoints.csproj +++ b/FluentValidation.AutoValidation.Endpoints/FluentValidation.AutoValidation.Endpoints.csproj @@ -5,7 +5,6 @@ - net7.0;net8.0;net9.0 SharpGrip.FluentValidation.AutoValidation.Endpoints SharpGrip.FluentValidation.AutoValidation.Endpoints SharpGrip FluentValidation AutoValidation Endpoints diff --git a/FluentValidation.AutoValidation.Mvc/FluentValidation.AutoValidation.Mvc.csproj b/FluentValidation.AutoValidation.Mvc/FluentValidation.AutoValidation.Mvc.csproj index 4117c6f..2b39e94 100644 --- a/FluentValidation.AutoValidation.Mvc/FluentValidation.AutoValidation.Mvc.csproj +++ b/FluentValidation.AutoValidation.Mvc/FluentValidation.AutoValidation.Mvc.csproj @@ -5,7 +5,6 @@ - netcoreapp3.1;net6.0;net7.0;net8.0;net9.0 SharpGrip.FluentValidation.AutoValidation.Mvc SharpGrip.FluentValidation.AutoValidation.Mvc SharpGrip FluentValidation AutoValidation MVC diff --git a/FluentValidation.AutoValidation.Mvc/src/Configuration/AutoValidationMvcConfiguration.cs b/FluentValidation.AutoValidation.Mvc/src/Configuration/AutoValidationMvcConfiguration.cs index 0d86cc3..ae56f21 100644 --- a/FluentValidation.AutoValidation.Mvc/src/Configuration/AutoValidationMvcConfiguration.cs +++ b/FluentValidation.AutoValidation.Mvc/src/Configuration/AutoValidationMvcConfiguration.cs @@ -16,7 +16,7 @@ public class AutoValidationMvcConfiguration /// /// Configures the validation strategy. Validation strategy enables asynchronous automatic validation on all controllers inheriting from . - /// Validation strategy enables asynchronous automatic validation on controllers inheriting from decorated (class or method) with a attribute. + /// Validation strategy enables asynchronous automatic validation on controllers decorated (class or method) with a attribute. /// public ValidationStrategy ValidationStrategy { get; set; } = ValidationStrategy.All; @@ -70,7 +70,7 @@ public class AutoValidationMvcConfiguration /// The default result factory returns the default object wrapped in a >. /// /// - /// The custom result factory implement . + /// The custom result factory implementing . public void OverrideDefaultResultFactoryWith() where TResultFactory : IFluentValidationAutoValidationResultFactory { OverriddenResultFactory = typeof(TResultFactory); diff --git a/FluentValidation.AutoValidation.Mvc/src/Enums/ValidationStrategy.cs b/FluentValidation.AutoValidation.Mvc/src/Enums/ValidationStrategy.cs index afdd392..047de58 100644 --- a/FluentValidation.AutoValidation.Mvc/src/Enums/ValidationStrategy.cs +++ b/FluentValidation.AutoValidation.Mvc/src/Enums/ValidationStrategy.cs @@ -11,7 +11,7 @@ public enum ValidationStrategy All = 1, /// - /// Enables asynchronous automatic validation on controllers inheriting from decorated with a attribute. + /// Enables asynchronous automatic validation on controllers inheriting from decorated with a attribute. /// Annotations = 2 } diff --git a/FluentValidation.AutoValidation.Shared/FluentValidation.AutoValidation.Shared.csproj b/FluentValidation.AutoValidation.Shared/FluentValidation.AutoValidation.Shared.csproj index eed5b58..d7cf986 100644 --- a/FluentValidation.AutoValidation.Shared/FluentValidation.AutoValidation.Shared.csproj +++ b/FluentValidation.AutoValidation.Shared/FluentValidation.AutoValidation.Shared.csproj @@ -5,7 +5,6 @@ - netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0;net7.0;net8.0;net9.0 SharpGrip.FluentValidation.AutoValidation.Shared SharpGrip.FluentValidation.AutoValidation.Shared SharpGrip FluentValidation AutoValidation Shared diff --git a/Tests/FluentValidation.AutoValidation.Tests.csproj b/Tests/FluentValidation.AutoValidation.Tests.csproj index 0f5fe11..e549e39 100644 --- a/Tests/FluentValidation.AutoValidation.Tests.csproj +++ b/Tests/FluentValidation.AutoValidation.Tests.csproj @@ -1,33 +1,32 @@ - net7.0;net8.0;net9.0 latest false SharpGrip.FluentValidation.AutoValidation.Tests - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Tests/src/FluentValidation.AutoValidation.Endpoints/Extensions/ServiceCollectionExtensionsTest.cs b/Tests/src/FluentValidation.AutoValidation.Endpoints/Extensions/ServiceCollectionExtensionsTest.cs index 78bf5d1..d5edb2c 100644 --- a/Tests/src/FluentValidation.AutoValidation.Endpoints/Extensions/ServiceCollectionExtensionsTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Endpoints/Extensions/ServiceCollectionExtensionsTest.cs @@ -1,4 +1,6 @@ -using FluentValidation.Results; +// ReSharper disable InconsistentNaming + +using FluentValidation.Results; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using SharpGrip.FluentValidation.AutoValidation.Endpoints.Extensions; diff --git a/Tests/src/FluentValidation.AutoValidation.Endpoints/Filters/FluentValidationAutoValidationEndpointFilterTest.cs b/Tests/src/FluentValidation.AutoValidation.Endpoints/Filters/FluentValidationAutoValidationEndpointFilterTest.cs index a780300..0d76f1c 100644 --- a/Tests/src/FluentValidation.AutoValidation.Endpoints/Filters/FluentValidationAutoValidationEndpointFilterTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Endpoints/Filters/FluentValidationAutoValidationEndpointFilterTest.cs @@ -1,4 +1,6 @@ -using System; +// ReSharper disable InconsistentNaming + +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; diff --git a/Tests/src/FluentValidation.AutoValidation.Endpoints/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs b/Tests/src/FluentValidation.AutoValidation.Endpoints/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs index 5341b31..9fd3aed 100644 --- a/Tests/src/FluentValidation.AutoValidation.Endpoints/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Endpoints/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +// ReSharper disable InconsistentNaming + +using System.Collections.Generic; using FluentValidation.Results; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.HttpResults; diff --git a/Tests/src/FluentValidation.AutoValidation.Mvc/Extensions/ServiceCollectionExtensionsTest.cs b/Tests/src/FluentValidation.AutoValidation.Mvc/Extensions/ServiceCollectionExtensionsTest.cs index 426c999..719f49b 100644 --- a/Tests/src/FluentValidation.AutoValidation.Mvc/Extensions/ServiceCollectionExtensionsTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Mvc/Extensions/ServiceCollectionExtensionsTest.cs @@ -1,4 +1,6 @@ -using Microsoft.AspNetCore.Mvc; +// ReSharper disable InconsistentNaming + +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using Microsoft.Extensions.DependencyInjection; diff --git a/Tests/src/FluentValidation.AutoValidation.Mvc/Filters/FluentValidationAutoValidationActionFilterTest.cs b/Tests/src/FluentValidation.AutoValidation.Mvc/Filters/FluentValidationAutoValidationActionFilterTest.cs index ea156f0..ca2e376 100644 --- a/Tests/src/FluentValidation.AutoValidation.Mvc/Filters/FluentValidationAutoValidationActionFilterTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Mvc/Filters/FluentValidationAutoValidationActionFilterTest.cs @@ -37,7 +37,7 @@ public async Task TestOnActionExecutionAsync() Parameter2 = "Value 2", Parameter3 = "Value 3" } - }, + } }; var controllerActionDescriptor = new ControllerActionDescriptor { @@ -129,7 +129,7 @@ public async Task OnActionExecutionAsync_WithInstanceTypeDifferentThanParameterT { Parameters = [ - new() + new ParameterDescriptor { Name = "request", ParameterType = typeof(CreateAnimalRequest), @@ -169,46 +169,35 @@ public async Task OnActionExecutionAsync_WithInstanceTypeDifferentThanParameterT // Assert var modelStateDictionaryValues = modelStateDictionary.Values.ToList(); var validationFailuresValues = validationFailures.Values.ToList(); - var badRequestObjectResult = (BadRequestObjectResult)actionExecutingContext.Result!; - var badRequestObjectResultValidationProblemDetails = (ValidationProblemDetails)badRequestObjectResult.Value!; + var badRequestObjectResult = (BadRequestObjectResult) actionExecutingContext.Result!; + var badRequestObjectResultValidationProblemDetails = (ValidationProblemDetails) badRequestObjectResult.Value!; Assert.Contains(validationFailuresValues[0].First(), modelStateDictionaryValues[0].Errors.Select(error => error.ErrorMessage)); Assert.Contains(validationFailuresValues[0].First(), badRequestObjectResultValidationProblemDetails.Errors[nameof(CreatePersonRequest.Name)][0]); } - public class AnimalsController : ControllerBase - { - } + public class AnimalsController : ControllerBase; - public class CreateAnimalRequest - { - } + public class CreateAnimalRequest; public class CreatePersonRequest : CreateAnimalRequest { public required string Name { get; set; } } - public class CreateAnimalRequestValidator : AbstractValidator - { - public CreateAnimalRequestValidator() - { - } - } + public class CreateAnimalRequestValidator : AbstractValidator; public class CreatePersonRequestValidator : AbstractValidator { public CreatePersonRequestValidator() { - this.Include(new CreateAnimalRequestValidator()); + Include(new CreateAnimalRequestValidator()); - this.RuleFor(x => x.Name).Equal("John Doe"); + RuleFor(x => x.Name).Equal("John Doe"); } } - public class TestController : ControllerBase - { - } + public class TestController : ControllerBase; private class TestModel { diff --git a/Tests/src/FluentValidation.AutoValidation.Mvc/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs b/Tests/src/FluentValidation.AutoValidation.Mvc/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs index 4f264a0..48056c9 100644 --- a/Tests/src/FluentValidation.AutoValidation.Mvc/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Mvc/Results/FluentValidationAutoValidationDefaultResultFactoryTest.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +// ReSharper disable InconsistentNaming + +using System.Collections.Generic; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Abstractions; @@ -14,9 +16,9 @@ public class FluentValidationAutoValidationDefaultResultFactoryTest { private static readonly Dictionary ValidationFailures = new() { - {"Property 1", new[] {"Error message 1"}}, - {"Property 2", new[] {"Error message 2"}}, - {"Property 3", new[] {"Error message 3"}}, + {"Property 1", ["Error message 1"]}, + {"Property 2", ["Error message 2"]}, + {"Property 3", ["Error message 3"]}, }; [Fact] diff --git a/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ServiceProviderExtensionsTest.cs b/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ServiceProviderExtensionsTest.cs index e455f75..dd60a3c 100644 --- a/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ServiceProviderExtensionsTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ServiceProviderExtensionsTest.cs @@ -1,4 +1,6 @@ -using System; +// ReSharper disable InconsistentNaming + +using System; using FluentValidation; using NSubstitute; using SharpGrip.FluentValidation.AutoValidation.Shared.Extensions; diff --git a/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/TypeExtensionsTest.cs b/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/TypeExtensionsTest.cs index bfbd3d6..d122506 100644 --- a/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/TypeExtensionsTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/TypeExtensionsTest.cs @@ -1,4 +1,6 @@ -using System; +// ReSharper disable InconsistentNaming + +using System; using Microsoft.AspNetCore.Mvc; using SharpGrip.FluentValidation.AutoValidation.Mvc.Attributes; using SharpGrip.FluentValidation.AutoValidation.Shared.Extensions; diff --git a/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ValidationResultExtensionsTest.cs b/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ValidationResultExtensionsTest.cs index 481193e..f5789c7 100644 --- a/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ValidationResultExtensionsTest.cs +++ b/Tests/src/FluentValidation.AutoValidation.Shared/Extensions/ValidationResultExtensionsTest.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +// ReSharper disable InconsistentNaming + +using System.Collections.Generic; using System.Linq; using FluentValidation.Results; using SharpGrip.FluentValidation.AutoValidation.Shared.Extensions;