GHM.Validator 2.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package GHM.Validator --version 2.0.0
NuGet\Install-Package GHM.Validator -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="GHM.Validator" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add GHM.Validator --version 2.0.0
#r "nuget: GHM.Validator, 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 GHM.Validator as a Cake Addin
#addin nuget:?package=GHM.Validator&version=2.0.0

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

GHM.Validator

GHM.Validator is a nuget package with the aim of validating data.

Install Package

.NET CLI

dotnet add package GHM.Validator --version 2.0.0

Package Manager

NuGet\Install-Package GHM.Validator -Version 2.0.0

IServiceCollectionExtensions

To add scoped interface IValidate to implementate Validate or IThrower to implementate Thrower , call extension method to your serviceCollection.

using  GHM.Validator.Extensions;

var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;
service.AddGhmValidator();

Example

Validation object

Validation is a object with properties(Message, IsValid).

var validationSuccess = Validation.Success("Successful message");

validationSuccess.Message; // "Successful message"
validationSuccess.IsValid; // true

var validationError = Validation.Error("Error message");

validationError.Message; // "Error message"
validationError.IsValid; // false

Validate request data


public Validation[] ValidateCreateUserRequest(CreateUserRequest request)
{
    IValidate validate;

    return new Validation[]
    {
        validate.IfNotNull(request.Name,"Name must not be null"),
        validate.IfNotZero(request.Age,"Age must not be 0")
    };
}

Throw if request data is invalid

public bool ValidateCreateUserRequest(CreateUserRequest request)
{
    IThrower thrower;
    thrower.IfNull(request.Name,"Name must not be null");
    thrower.IfZero(request.Age,"Age must not be 0");

    return true;
}

Returns

Validation Return

You can use it to return a validation result with validate's method.


public interface IValidate
{
    Validation IfNotDefault<T>(T obj, string message);
    Validation IfNotNull(object? obj, string message);
    Validation IfNull(object? obj, string message);
    Validation IfEqual(object obj, object objToComapere, string message);
    Validation IfNotZero(int number, string message);
    Validation IfNotZero(decimal number, string message);
    Validation IfGreaterOrEqual(int number, int numberToCompare, string message);
    Validation IfGreater(int number, int numberToCompare, string message);
    Validation IfGreaterOrEqual(decimal number, decimal numberToCompare, string message);
    Validation IfGreater(decimal number, decimal numberToCompare, string message);
    Validation IfNotEmpty(string text, string message);
    Validation IfParseToLong(string text, string message);
    Validation IfNotEmpty<T>(IEnumerable<T> list, string message);
    Validation IfOlder(DateTime date, DateTime dateToCompare, string message);
    Validation IfOlderOrEqual(DateTime date, DateTime dateToCompare, string message);
}

Throw Exception

You can use it to throw exception with thrower's method.

public interface IThrower
{
    bool IfDefault<T>(T obj, string message);
    bool IfNotNull(object? obj, string message);
    bool IfNull(object? obj, string message);
    bool IfNotEqual(object obj, object objToComapere, string message);
    bool IfZero(int number, string message);
    bool IfZero(decimal number, string message);
    bool IfGreaterOrEqual(int number, int numberToCompare, string message);
    bool IfGreater(int number, int numberToCompare, string message);
    bool IfGreaterOrEqual(decimal number, decimal numberToCompare, string message);
    bool IfGreater(decimal number, decimal numberToCompare, string message);
    bool IfEmpty(string text, string message);
    bool IfNotParseToLong(string text, string message);
    bool IfEmpty<T>(IEnumerable<T> list, string message);
    bool IfOlder(DateTime date, DateTime dateToCompare, string message);
    bool IfOlderOrEqual(DateTime date, DateTime dateToCompare, string message);
}

Star

if you enjoy, don't forget the ⭐ and install the package 😊.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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
3.5.0 81 6/1/2024
3.4.2 98 2/26/2024
3.4.1 102 2/24/2024
3.3.1 95 2/14/2024
3.2.1 90 2/6/2024
3.2.0 79 2/5/2024
3.1.0 80 2/2/2024
2.1.3 120 1/12/2024
2.1.2 89 1/12/2024
2.1.1 88 1/12/2024
2.1.0 89 1/12/2024
2.0.0 181 11/15/2023
1.0.0 113 10/7/2023