Centeva.RequestValidation 2.0.0

Prefix Reserved
dotnet add package Centeva.RequestValidation --version 2.0.0
                    
NuGet\Install-Package Centeva.RequestValidation -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Centeva.RequestValidation" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Centeva.RequestValidation" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Centeva.RequestValidation" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Centeva.RequestValidation --version 2.0.0
                    
#r "nuget: Centeva.RequestValidation, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Centeva.RequestValidation@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Centeva.RequestValidation&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Centeva.RequestValidation&version=2.0.0
                    
Install as a Cake Tool

Centeva Request Validation

Centeva.RequestAuthorization is a .NET library that provides a method for validating MediatR requests using FluentValidation. This enables validation at the request level instead of inside ASP.Net Core controllers, separating validation logic from the presentation layer.

Built With

Installation

Import the Centeva.RequestValidation package to your projects where needed.

Dependency Injection

Register the validators and add a MediatR pipeline behavior in your Program.cs:

builder.Services.AddRequestValidation(typeof(SampleValidator).Assembly);

NOTE: If you're also using Centeva.RequestAuthorization, you likely want to call the above method first, then add the Authorization behavior. This ensures that validation happens first in your MediatR pipeline.

Validating a Request

To validate a request, add a validator class to your project that inherits from AbstractValidator<TRequest>, where TRequest is the type of request you want to validate. For example:

public class SampleValidator : AbstractValidator<SampleRequest>
{
    public SampleValidator()
    {
        RuleFor(x => x.Name).NotEmpty();
    }
}

If validation fails, a ValidationException will be thrown. Your application is responsible for handling those exceptions, possibly by mapping to a custom HTTP response or a ProblemDetails object.

Contributing

Please use a Pull Request to suggest changes to this library. As this is a shared library, strict semantic versioning rules should be followed to avoid unexpected breaking changes.

Running Tests

From Windows, use the dotnet test command, or your Visual Studio Test Explorer.

Deployment

This library is versioned by GitVersion. Create a Git tag for an official release (e.g., "v1.0.0"). Version numbers can be incremented via commit message using the GitVersion approaches.

Resources

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 376 2/20/2024
1.0.0 287 12/26/2023
0.1.0 221 12/6/2023