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.
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.
// Install Centeva.RequestValidation as a Cake Addin
#addin nuget:?package=Centeva.RequestValidation&version=2.0.0

// Install Centeva.RequestValidation as a Cake Tool
#tool nuget:?package=Centeva.RequestValidation&version=2.0.0                

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. 
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 269 2/20/2024
1.0.0 245 12/26/2023
0.1.0 182 12/6/2023