# HG changeset patch # User juanjose.montesdeocaarbos # Date 1319538195 10800 # Node ID 5ddc574deeea5c4f1b31290b13e56b2c49845e92 # Parent cef4fc893333dfe23fd7fbca25a87da8c4ff38b2 Remplazamos la clase PersonaValidation por TwitterAttribute diff -r cef4fc893333 -r 5ddc574deeea Agendas/trunk/src/Agendas.Web/Models/PersonaModel.cs --- 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