网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System;
using System.ComponentModel.DataAnnotations;
using AutoMapper;
using Dpz.Core.EnumLibrary;
using Dpz.Core.Infrastructure;
using Dpz.Core.Public.Entity;

namespace Dpz.Core.Public.ViewModel;

public class VmPublishComment:IHaveCustomMapping
{
    /// <summary>
    /// 评论类型
    /// </summary>
    [Required(ErrorMessage = "comment node is empty.")]
    public required CommentNode Node { get; set; }

    /// <summary>
    /// 关联
    /// </summary>
    [Required(ErrorMessage = "relation is empty."),MaxLength(500,ErrorMessage = "relation max length 20.")]
    public required string Relation { get; set; }

    /// <summary>
    /// 昵称
    /// </summary>
    [Required(ErrorMessage = "昵称不能为空"),MaxLength(200,ErrorMessage = "昵称最大长度为200")]
    public required string NickName { get; set; }

    /// <summary>
    /// 邮箱地址
    /// </summary>
    [Required(ErrorMessage = "请填写邮箱地址"),EmailAddress(ErrorMessage = "请填写正确的邮箱地址"),MaxLength(200,ErrorMessage = "邮箱地址最大长度为200")]
    public required string Email { get; set; }

    /// <summary>
    /// 回复内容
    /// </summary>
    [Required(ErrorMessage = "请输入回复内容"),MaxLength(2000,ErrorMessage = "回复内容最大长度为2000")]
    public required string CommentText { get; set; }
    
    /// <summary>
    /// 个人网站
    /// </summary>
    [Url(ErrorMessage = "请填写正确的个人网站地址"),MaxLength(200,ErrorMessage = "个人网站最大长度为200")]
    public string? Site { get; set; }
    
    /// <summary>
    /// 回复ID
    /// </summary>
    [MaxLength(50,ErrorMessage = "reply id max length 15")]
    public string? ReplyId { get; set; }

    /// <summary>
    /// 发送时间
    /// </summary>
    public DateTime SendTime => DateTime.Now;

    public void CreateMappings(MapperConfigurationExpression cfg)
    {
        cfg.CreateMap<VmPublishComment, Comment>().ConstructUsing((viewModel, _) =>
        {
            var entity = new Comment
            {
                Node = viewModel.Node,
                Relation = viewModel.Relation,
                CommentText = viewModel.CommentText,
                Commenter = new GuestCommenter
                {
                    Email = viewModel.Email,
                    NickName = viewModel.NickName,
                    Site = viewModel.Site
                },
                
            };
            return entity;
        });
    }
}
loading