Clear        


                
                    using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace APP.Models
{
    /// <summary>
    /// Represents the data required for a user register request.
    /// Used for binding and validating register form input in Razor Views.
    /// </summary>
    public class UserRegisterRequest
    {
        /// <summary>
        /// Gets or sets the user name for register.
        /// Must be between 3 and 30 characters.
        /// </summary>
        [Required(ErrorMessage = "{0} is required!")]
        [StringLength(30, MinimumLength = 3, ErrorMessage = "{0} must be minimum {2} maximum {1} characters!")]
        [DisplayName("User Name")]
        public string UserName { get; set; }

        /// <summary>
        /// Gets or sets the password for register.
        /// Must be between 4 and 15 characters.
        /// </summary>
        [Required(ErrorMessage = "{0} is required!")]
        [StringLength(15, MinimumLength = 4, ErrorMessage = "{0} must be minimum {2} maximum {1} characters!")]
        public string Password { get; set; }

        /// <summary>
        /// Gets or sets the confirm password for register.
        /// Must be between 4 and 15 characters.
        /// Must have the equal value with Password.
        /// </summary>
        [Required(ErrorMessage = "{0} is required!")]
        [StringLength(15, MinimumLength = 4, ErrorMessage = "{0} must be minimum {2} maximum {1} characters!")]
        [Compare("Password", ErrorMessage = "Password and Confirm Password must be the same!")]
        [DisplayName("Confirm Password")]
        public string ConfirmPassword { get; set; }
    }
}