The library is in testing mode, is not secure for production mode.
dotnet add package ValidaZione
using ValidaZione;
Validazione validazione = new Validazione(Language.En);
Validazione validazione = new Validazione(Language.Es);
builder.Services.AddScoped<IValidazion>(v => new Validazione(Language.Fr));
// In the controller
private readonly IValidazione _validazion;
public PersonController(IValidazione validazione)
{
_validazione = validazione;
}
[HttpPost]
public async Task<ActionResult> Store(Person person){
_validazione.Field("name", person.Name).Between(3, 20);
_validazione.PassOrException();
}
validazione.Field("Test", "testing").Min(3).Max(10).Alpha();
validazione.Field("Test", 4).Between(1, 10);
validazione.Field("Test2", 5.07).Between(1, 10);
validazione.Field("Test", new int[] {1, 2, 3}).Between(1, 10);
validazione.Field("Test2", new List<Person>(){ new Person()}).Distinct();
validazione.Field("Test", DateTime.Now).Before(DateTime.Now.AddDays(1));
validazione.Field("Test", true).Accepted();
validazione.Field("Test", false).Declined();
if(validazione.Pass()){
//Save data
}
try
{
validazione.PassOrException();
}
catch(ValidazioneException e){
Console.WriteLine(e.Message);
foreach(var field in e.Fields){
field.Errors.ForEach(error => {
Console.WriteLine(error);
});
}
}
var fields = validazione.ErrorsByField();
var errors = validazione.Errors();
public class MyCustomLang : ILang {
public string FieldName { get; set; }
public string Accepted(){
return "Acepta las condiciones que evidentemente no leíste";
}
}
Validazione validazione = new Validazione(new MyCustomLang())