Mercurial > altnet-hispano
changeset 265:5ddc574deeea
Remplazamos la clase PersonaValidation por TwitterAttribute
author | juanjose.montesdeocaarbos |
---|---|
date | Tue, 25 Oct 2011 07:23:15 -0300 |
parents | cef4fc893333 |
children | dba5d41bc7bf |
files | Agendas/trunk/src/Agendas.Web/Models/PersonaModel.cs |
diffstat | 1 files changed, 30 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Web/Models/PersonaModel.cs Sat Oct 22 17:27:45 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Models/PersonaModel.cs Tue Oct 25 07:23:15 2011 -0300 @@ -18,14 +18,14 @@ public string Nombre { get; set; } [Required] - [CustomValidation(typeof(PersonaValidation), "IsTwitterAccount")] + [Twitter] public string Twitter { get; set; } [Required] - [Email ] + [Email] public string EMail { get; set; } - [Url ] + [Url] public string Blog { get; set; } public string[] Roles { get; set; } @@ -41,7 +41,7 @@ public string Nombre { get; set; } [Required] - [CustomValidation(typeof(PersonaValidation), "IsTwitterAccount")] + [Twitter] public string Twitter { get; set; } [Required] @@ -78,16 +78,34 @@ public string Blog { get; set; } } - //TODO: Ver donde movemos esta clase. - public class PersonaValidation + [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] + public class TwitterAttribute: DataTypeAttribute { - public static ValidationResult IsTwitterAccount(string value) + public TwitterAttribute() + : base(DataType.Text) + { + } + + public override string FormatErrorMessage(string name) { - //[RegularExpression(@"^([\w\d\-\.]+)$")] - return value.StartsWith("@") - ? new ValidationResult("No debe ingresar el arroba al escribir la cuenta de twitter.") - : ValidationResult.Success; + + if (ErrorMessage == null && ErrorMessageResourceName == null) + { + //TODO: Esto debe estar en el archivo de Recursos. + const string TwitterAttribute_Invalid = "No debe ingresar el arroba al escribir la cuenta de twitter."; ; + ErrorMessage = TwitterAttribute_Invalid; + } + return base.FormatErrorMessage(name); + } + + public override bool IsValid(object value) + { + if (value == null) + { + return false; + } + + return !((string)value).StartsWith("@"); } } - } \ No newline at end of file