SimpleEntityValidation 1.1.1
dotnet add package SimpleEntityValidation --version 1.1.1
NuGet\Install-Package SimpleEntityValidation -Version 1.1.1
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="SimpleEntityValidation" Version="1.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SimpleEntityValidation" Version="1.1.1" />
<PackageReference Include="SimpleEntityValidation" />
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 SimpleEntityValidation --version 1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SimpleEntityValidation, 1.1.1"
#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.
#addin nuget:?package=SimpleEntityValidation&version=1.1.1
#tool nuget:?package=SimpleEntityValidation&version=1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SimpleEntityValidation
Why?
- Is very simple to use.
- You create your entity/class validation and can be used in any times.
- Whenever you need to validate a CLASS you don't need to repeat the validation.
- You can centralize your class validations in one place.
How i do?
- Just extend the abstraction class "AbstractValidation".
- Use the protected method "RuleFor" to setup the especifications of your field validations.
Example
- Client (Model)
public class Client {
public Guid Id { get; set; }
public string Name { get; set; }
public string Document { get; set; }
public string Email { get; set; }
public DateTime CreationDate { get; set; }
public int YearsOld { get; set; }
public string Password { get; set; }
public string CheckPassword { get; set; }
public List<string> Tags { get; set; }
}
- ClientValidator (Your Client Validator)
public class ClientValidator : AbstractValidator<Client>
{
public ClientValidator()
{
RuleFor(x => x.Name).NotNull().MinLength(5);
RuleFor(x => x.Password).NotNull().MustBeEqual(x => x.CheckPassword);
RuleFor(x => x.Email).NotNull().MinLength(10);
RuleFor(x => x.Document).MaxLength(11);
RuleFor(x => x.Password).NotEqual("12345");
RuleFor(x => x.YearsOld).GreaterThan(17);
RuleFor(x => x.Tags).NotNull();
RuleFor(x => x.YearsOld)
.LessThan(150)
.WithMessage("The field 'YearsOld' is not less than '150'");
}
}
- Usage
class Program
{
protected Program() { }
static void Main(string[] args)
{
Client client = new() { Password = "12345", CheckPassword = "12312s1", YearsOld = 155 };
ClientValidator clientValidator = new();
ValidationResult result = clientValidator.Validate(client);
if (result.ValidationFailures.Count > 0)
Console.WriteLine("Client entity validation with errors:");
result.ValidationFailures.ToList().ForEach(failure => Console.WriteLine($"{failure.Message}"));
Console.ReadKey();
}
}
- Complex Class
public class ClientValidator : AbstractValidator<Client>
{
public ClientValidator()
{
RuleFor(x => x.Name).NotNull().MinLength(5);
RuleFor(x => x.Password).NotNull().MustBeEqual(x => x.CheckPassword);
RuleFor(x => x.Email).NotNull().MinLength(10);
RuleFor(x => x.Document).MaxLength(11);
RuleFor(x => x.CreationDate).NotNull();
RuleFor(x => x.Tags).NotNull();
RuleFor(x => x.Nums).NotNull();
RuleFor(x => x.Password).NotEqual("12345");
RuleFor(x => x.YearsOld).GreaterThan(17);
RuleFor(x => x.Address).SetBaseValidator(new AddressValidator()); // Complex validation
RuleFor(x => x.YearsOld)
.LessThan(150)
.WithMessage("The field 'YearsOld' is not less than '150'");
}
}
- Address Validator
public class AddressValidator : AbstractValidator<Address>
{
public AddressValidator()
{
RuleFor(x => x.Street).NotNull().MaxLength(150);
RuleFor(x => x.City).NotNull().MaxLength(100);
RuleFor(x => x.Country).NotNull().MinLength(2);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. 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. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.