using System.ComponentModel.DataAnnotations; using System.Text.RegularExpressions; namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels { public class RegisterWizardModel { [Required(ErrorMessage = "The Email value should be specified.")] [DataType(DataType.EmailAddress)] [Display(Name = "Email", ResourceType = typeof(TIAM.Resources.TIAMResources))] public string Email { get; set; } public string Password { get; set; } public string PasswordConfirmation { get; set; } public RegisterWizardModel() { } public RegisterWizardModel(string email, string password, string passwordConfirmation) { Email = email; Password = password; PasswordConfirmation = passwordConfirmation; } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)] public class MinPasswordLengthAttribute : ValidationAttribute { int MinLength { get; } public MinPasswordLengthAttribute(int minLength, string errorMsg) : base(errorMsg) { MinLength = minLength; } public override bool IsValid(object value) { return ((string)value).Length >= MinLength; } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)] public class EmailAttribute : ValidationAttribute { public override bool IsValid(object value) { return Regex.IsMatch((string)value, @"^[\w!#$%&'*+\-/=?\^_`{|}~]+(\.[\w!#$%&'*+\-/=?\^_`{|}~]+)*" + "@" + @"((([\-\w]+\.)+[a-zA-Z]{2,4})|(([0-9]{1,3}\.){3}[0-9]{1,3}))$"); } } }