网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
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 MembleComment: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(2000,ErrorMessage = "回复内容最大长度为2000")]
    public required string CommentText { get; set; }
    
    /// <summary>
    /// 回复ID
    /// </summary>
    [MaxLength(50,ErrorMessage = "reply id max length 15")]
    public string? ReplyId { get; set; }
    
    public VmUserInfo? User { get; set; }

    public void CreateMappings(MapperConfigurationExpression cfg)
    {
        cfg.CreateMap<MembleComment, Comment>().ConstructUsing((viewModel, _) =>
        {
            var entity = new Comment
            {
                Node = viewModel.Node,
                Relation = viewModel.Relation,
                CommentText = viewModel.CommentText,
                Commenter = new MembleCommenter()
                {
                    Avatar = viewModel.User?.Avatar,
                    Identity = viewModel.User?.Permissions?.HasFlag(Permissions.System) == true ? "管理员" : "成员",
                    NickName = viewModel.User?.Name
                },
            };
            return entity;
        });
    }
}
loading