网站首页 网站源码
using System.ComponentModel.DataAnnotations;
using Dpz.Core.Infrastructure;
using Dpz.Core.Public.Entity;
namespace Dpz.Core.Public.ViewModel
{
public class VmEmailConfig : IMapFrom<EmailConfig>
{
public string Id { get; set; }
/// <summary>
/// 别名
/// </summary>
[Display(Name = "别名"), Required(ErrorMessage = "请填写别名")]
public string Name { get; set; }
/// <summary>
/// 邮箱名称
/// </summary>
[Display(Name = "邮箱名称"), Required(ErrorMessage = "请填写邮箱名称")]
public string EmailName { get; set; }
/// <summary>
/// Email地址
/// </summary>
[Required(ErrorMessage = "请填写email地址"), DataType(DataType.EmailAddress,ErrorMessage = "请填写正确的email地址")]
[Display(Name = "Email地址")]
public string Email { get; set; }
/// <summary>
/// 账户密码
/// </summary>
[Display(Name = "账户密码"), DataType(DataType.Password), Required(ErrorMessage = "请填写账户密码")]
public string Password { get; set; }
/// <summary>
/// IMAP服务器地址
/// </summary>
[Required(ErrorMessage = "请填写IMAP服务器地址"), Display(Name = "IMAP服务器地址")]
public string ImapHost { get; set; }
/// <summary>
/// IMAP端口,默认993
/// </summary>
[Display(Name = "IMAP端口"), Range(1, 99999, ErrorMessage = "端口边界值为1-99999"),Required(ErrorMessage = "请填写IMAP端口")]
public int? ImapPort { get; set; } = 993;
/// <summary>
/// IMAP是否使用SSL
/// </summary>
[Display(Name = "IMAP是否使用SSL")]
public bool ImapUseSsl { get; set; } = true;
/// <summary>
/// SMTP服务器地址
/// </summary>
[Required(ErrorMessage = "请填写SMTP服务器地址"), Display(Name = "SMTP服务器地址")]
public string SmtpHost { get; set; }
/// <summary>
/// SMTP端口,默认587
/// </summary>
[Display(Name = "SMTP端口"), Range(1, 99999, ErrorMessage = "端口边界值为1-99999"), Required(ErrorMessage = "请填写SMTP端口")]
public int? SmtpPort { get; set; } = 587;
/// <summary>
/// SMTP是否使用SSL
/// </summary>
[Display(Name = "SMTP是否使用SSL")]
public bool SmtpUseSsl { get; set; } = false;
/// <summary>
/// 相关用户
/// </summary>
public VmUserInfo AboutUser { get; set; }
}
}
上述代码定义了一个名为 VmEmailConfig
的视图模型类,主要用于表示电子邮件配置的相关信息。这个类使用了 C# 的数据注解特性(Data Annotations)来进行数据验证和描述。以下是对代码中各个部分的详细解释:
VmEmailConfig
类实现了 IMapFrom<EmailConfig>
接口,表明这个视图模型可以从 EmailConfig
实体类映射而来。这通常用于在应用程序中进行数据传输和转换。Id:
string
Name:
string
Display
和 Required
特性,确保在表单提交时必须填写该字段,并提供了相应的错误消息。EmailName:
string
Display
和 Required
特性。Email:
string
Required
和 DataType
特性,确保该字段必须填写,并且格式必须是有效的电子邮件地址。Password:
string
DataType
特性将其标记为密码类型,并且是必填项。ImapHost:
string
Required
特性,确保该字段必须填写。ImapPort:
int?
(可空整型)Range
和 Required
特性,确保端口在 1 到 99999 之间,并且是必填项。ImapUseSsl:
bool
true
。SmtpHost:
string
Required
特性,确保该字段必须填写。SmtpPort:
int?
(可空整型)Range
和 Required
特性,确保端口在 1 到 99999 之间,并且是必填项。SmtpUseSsl:
bool
false
。AboutUser:
VmUserInfo
这个视图模型类 VmEmailConfig
主要用于在用户界面中收集和验证电子邮件配置的相关信息。通过使用数据注解,开发人员可以确保用户输入的数据符合预期的格式和要求,从而提高应用程序的健壮性和用户体验。