Attribute
Dosaic.Plugins.Validations.AttributeValidation is a plugin
that allows other Dosaic components
to validate object using attributes
.
Installation
To install the nuget package follow these steps:
dotnet add package Dosaic.Plugins.Validations.AttributeValidation
or add as package reference to your .csproj
<PackageReference Include="Dosaic.Plugins.Validations.AttributeValidation" Version="" />
Appsettings.yml
You do not need to configure anything, because the implementation resolver, does this automatically at startup.
Usage
The validator is auto-registered using the Plugin technology. You can use it by adding the Validations
attribute to your model and inject the IValidator in your usage.
However, there are following Validations attibutes:
Required
Expression
Array
Length
MinLength
MaxLength
Bool
True
False
Date
Before
After
Age
MinAge
MaxAge
Int
Range
Min
Max
Positive
Negative
String
Length
MinLength
MaxLength
Email
Url
Regex
Example:
```csharp
internal class DbModel {
[Validations.Required]
public string Id {get;set;}
[Validations.String.MinLength(5), Validations.String.MaxLength(10), Validations.String.Regex(@"^[a-zA-Z]+$")]
public string LongName {get;set;}
[Validations.Expression("Value % 2 == 0")]
public int SomeNumber {get;set;}
}
// USAGE:
IServiceProvider sp;
var validator = sp.GetRequiredService<IValidator>();
var dbModel = new DbModel { Id = "1", LongName = "LongName", SomeNumber = 2 };
var result = await validator.ValidateAsync(dbModel);
Console.WriteLine(result.IsValid); // true
var failModel = new DbModel { Id = "", LongName = "..", SomeNumber = 3 };
var result = await validator.ValidateAsync(dbModel);
Console.WriteLine(result.IsValid); // false
Console.WriteLine(result.Errors); // List of errors
Last updated