public class Customer
{
[ValidBirthDate(ErrorMessage = "Birth Date can not be greater than current date")]
public DateTime BirthDate { get; set; }
}
Validação:
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]public sealed class ValidBirthDate:ValidationAttribute{protected override ValidationResult IsValid(object value, ValidationContext validationContext){if (value !=null){DateTime _birthJoin=Convert.ToDateTime(value);if (_birthJoin > DateTime.Now){return new ValidationResult("Birth date can not be greater than current date.");}}return ValidationResult.Success;}}
Eu to utilizando, por conta da produção!!!
Antes utilizada JSF. Mas como achei muito interessante ASP.NET, com razor.
Então eu migrei!
Sem falar no EF.
javaflex
Sim é infinitamente mais interessante do que JSF. Quanto ao seu problema o exemplo serviu?
B
Bsi
Achei interessante. Mas tenho que analisar, melhor. Já que no meu Model, ele não está no meu projeto UI. E Sim é o Transfer. Sem falar, que estou utilizando retorno de métodos com “n” atributos. Mas irei da uma olhada, em relação a está situação !
javaflex
O model não precisa estar no projeto de UI para a validação funcionar.
B
Bsi
Firmeza. Tava olhado o artigo, de Diego Neves. Achei bem interessante, como ele trata dos objetos sem data annotation ou sem exceptions.
javaflex
Se tiver com objetivo de se manter no mercado essas soluções mais caseiras não vão te agregar tanto. Normalmente usam mais data annotations do próprio .NET ou a biblioteca Fluent Validation, que é a melhor solução pra não ficar poluindo as propriedades com data annotations.
B
Bsi
Exato !!!
Mas o ruim é que com data annotations, o uso dos meus métodos irão por água “abaixooo”!
To analisando o artigo e irei da uma olhada no Fluent Validation. Por conhecimento e necessidade!
javaflex
Seus métodos podem ser chamados de dentro do custom validation no data annotation. O mesmo vale pro Fluent, só que fica bem melhor.
B
Bsi
Ainda remontando minha classe BO de validação com o Fluent Validation.
Comecei a da uma olhada agora mesmo. Irei analisar como irá ficar as minhas recursividades.
Quaisquer coisa aviso e posto, aqui !
B
Bsi
Boa tarde.
Ainda iniciando o teste do projeto. Mas, com a ajuda do JavaFlex o mesmo me informou sobre o Fluent Validation. Tive que modificar o meu projeto, mas foi rápido. Ficando assim: