Skip to content

Nexus-Company/Nexus-Validations-Tools

Repository files navigation

Nexus-Validations-Tools

GitHub license GitHub forks

Ferramentas de validação da Nexus é um pacote Nuget com um conjunto de ferramentas (atributos validáveis, metodos de formatação e etc..) para validação e formatação de propiedades em classes modelo (usando o esquema MVC ) utilizando atributos. Esse pacote feito por Juan Douglas, feito em nome e para a Nexus Company.

Para saber sobre versões e atualizações click aqui

Saiba como usar e veja exemplos aqui.

Atributos

Esta lista contém os atributos que serão ou já foram implementados ou a serem implementados

':heavy_check_mark:' Atributo já implementado

':x:' Atributo a ser implementado

Atributos de classes modelos

Esses atributos são usados para validar classes modelo

  • ✔️ Required: O campo e obrigatório e não aceita valores nulos.
  • ✔️ Password: O campo contém uma senha por isso deve conter uma letra minúscula, uma letra de maiúscula, um número e um caráter especial, além de ter no mínimo 8 caracteres.
  • ✔️ EmailAdress: Este atributo indica que o campo deve ser um e-mail seguindo o esquema user@domain.org RFC 822.
  • ✔️ Compare: Este atributo indica que o campo deve ter o mesmo valor do campo referenciado.
  • ✔️ UniqueInDatabase: Este atributo indica que o valor deste campo deve ser unico em sua tabela no banco de dados (para a validação o atributo uso EntityFramework).

Atributos de metodos

  • RequireAuthentication: Este atributo irá indicar que um contéudo deve ser acessado usando uma autenticação válida.

Usos e exemplos

Para utilizar os atributos e necessário adicionar o pacote Nexus.Tools.Validation, você pode adicionar o pacote utilizando o comando:

 dotnet add package Nexus.Tools.Validations

Este exemplo mostra um exemplo de uma classe modelo com atributos nome é e-mail onde todo a validação é feita usando os atributos da classe

Para saber mais sobre os atribtuos e suas funcionalidades click aqui

Exemplo:

using Nexus.Tools.Validations.Attributes;

namespace Example.Models
{
    public class ExampleModel
    {
        [Required]
        [EmailAddress]
        [StringLength(500)]
        [UniqueInDataBase(typeof(DbContext), typeof(Account), nameof(Account.Email))]
        public string Email { get; set; }

        [Password]
        [Required]
        [StringLength(50, MinimumLength = 8)]
        public string Password { get; set; }
        
        [Required]
        [Compare(nameof(Password))]
        public string ConfirmPassword { get; set; }
    }
}