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.
J
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 !
J
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.
J
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!
J
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: