TourIAm/TIAMWebApp/Shared/Models/ClientSide/UI/WizardModels/RegisterWizardModel.cs

55 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
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}))$");
}
}
}