101 lines
3.8 KiB
C#
101 lines
3.8 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace PlotLine.ViewModels;
|
|
|
|
public sealed class RegisterViewModel
|
|
{
|
|
[Required(ErrorMessage = "Enter your email address.")]
|
|
[EmailAddress(ErrorMessage = "Enter a valid email address.")]
|
|
[StringLength(256, ErrorMessage = "Email must be 256 characters or fewer.")]
|
|
public string Email { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Enter a display name.")]
|
|
[StringLength(200, ErrorMessage = "Display name must be 200 characters or fewer.")]
|
|
public string DisplayName { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Enter a password.")]
|
|
[StringLength(200, MinimumLength = 12, ErrorMessage = "Password must be at least 12 characters.")]
|
|
[DataType(DataType.Password)]
|
|
public string Password { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Confirm your password.")]
|
|
[DataType(DataType.Password)]
|
|
[Compare(nameof(Password), ErrorMessage = "Passwords do not match.")]
|
|
public string ConfirmPassword { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class LoginViewModel
|
|
{
|
|
[Required(ErrorMessage = "Enter your email address.")]
|
|
[EmailAddress(ErrorMessage = "Enter a valid email address.")]
|
|
[StringLength(256, ErrorMessage = "Email must be 256 characters or fewer.")]
|
|
public string Email { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Enter your password.")]
|
|
[DataType(DataType.Password)]
|
|
public string Password { get; set; } = string.Empty;
|
|
|
|
public bool RememberMe { get; set; }
|
|
|
|
public string? ReturnUrl { get; set; }
|
|
}
|
|
|
|
public sealed class ForgotPasswordViewModel
|
|
{
|
|
[Required(ErrorMessage = "Enter your email address.")]
|
|
[EmailAddress(ErrorMessage = "Enter a valid email address.")]
|
|
[StringLength(256, ErrorMessage = "Email must be 256 characters or fewer.")]
|
|
public string Email { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class ResetPasswordViewModel
|
|
{
|
|
[Required(ErrorMessage = "Enter your email address.")]
|
|
[EmailAddress(ErrorMessage = "Enter a valid email address.")]
|
|
[StringLength(256, ErrorMessage = "Email must be 256 characters or fewer.")]
|
|
public string Email { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Password reset token is missing.")]
|
|
public Guid Token { get; set; }
|
|
|
|
[Required(ErrorMessage = "Enter a new password.")]
|
|
[StringLength(200, MinimumLength = 12, ErrorMessage = "Password must be at least 12 characters.")]
|
|
[DataType(DataType.Password)]
|
|
public string Password { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Confirm your new password.")]
|
|
[DataType(DataType.Password)]
|
|
[Compare(nameof(Password), ErrorMessage = "Passwords do not match.")]
|
|
public string ConfirmPassword { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class TwoFactorViewModel
|
|
{
|
|
[Required(ErrorMessage = "Enter your authentication code.")]
|
|
[StringLength(20, ErrorMessage = "Authentication code is too long.")]
|
|
public string Code { get; set; } = string.Empty;
|
|
|
|
public string? ReturnUrl { get; set; }
|
|
|
|
public bool RememberMachine { get; set; }
|
|
|
|
public bool RememberMe { get; set; }
|
|
}
|
|
|
|
public sealed class ChangePasswordViewModel
|
|
{
|
|
[Required(ErrorMessage = "Enter your current password.")]
|
|
[DataType(DataType.Password)]
|
|
public string CurrentPassword { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Enter a new password.")]
|
|
[StringLength(200, MinimumLength = 12, ErrorMessage = "Password must be at least 12 characters.")]
|
|
[DataType(DataType.Password)]
|
|
public string NewPassword { get; set; } = string.Empty;
|
|
|
|
[Required(ErrorMessage = "Confirm your new password.")]
|
|
[DataType(DataType.Password)]
|
|
[Compare(nameof(NewPassword), ErrorMessage = "Passwords do not match.")]
|
|
public string ConfirmPassword { get; set; } = string.Empty;
|
|
}
|