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

namespace Dpz.Core.Public.ViewModel;

public class VmCommentFlat : IHaveCustomMapping
{
    public string Id { get; set; }

    /// <summary>
    /// 评论类型
    /// </summary>
    public CommentNode Node { get; set; }

    /// <summary>
    /// 关联
    /// </summary>
    public string Relation { get; set; }

    /// <summary>
    /// 回复时间
    /// </summary>
    public DateTime PublishTime { get; set; }

    /// <summary>
    /// 回复内容
    /// </summary>
    public string CommentText { get; set; }

    /// <summary>
    /// 回复ID
    /// </summary>
    public List<string> Replies { get; set; }

    /// <summary>
    /// 昵称
    /// </summary>
    public string NickName { get; set; }

    /// <summary>
    /// 头像
    /// </summary>
    public string Avatar { get; set; }

    /// <summary>
    /// 身份标识
    /// </summary>
    public string Identity { get; set; }

    /// <summary>
    /// 邮箱
    /// </summary>
    public string Email { get; set; }

    /// <summary>
    /// 网站
    /// </summary>
    public string Site { get; set; }

    /// <summary>
    /// 是否匿名评论
    /// </summary>
    public bool IsGuest { get; set; }
    
    /// <summary>
    /// 是否删除
    /// </summary>
    public bool? IsDelete { get; set; }


    public void CreateMappings(MapperConfigurationExpression cfg)
    {
        cfg.CreateMap<Comment, VmCommentFlat>().ConvertUsing((entity, _) =>
        {
            var viewModel = new VmCommentFlat
            {
                Id = entity.Id.ToString(),
                Node = entity.Node,
                Relation = entity.Relation,
                PublishTime = entity.PublishTime.ToLocalTime(),
                CommentText = entity.CommentText,
                Replies = entity.Replies == null
                    ? new List<string>()
                    : entity.Replies.Select(x => x.ToString()).ToList(),
                NickName = entity.Commenter.NickName,
                IsDelete = entity.IsDelete
            };
            if (entity.Commenter is GuestCommenter guestCommenter)
            {
                viewModel.IsGuest = true;
                viewModel.Email = guestCommenter.Email;
                viewModel.Site = guestCommenter.Site;
            }
            else if (entity.Commenter is MembleCommenter membleCommenter)
            {
                viewModel.IsGuest = false;
                viewModel.Identity = membleCommenter.Identity;
                viewModel.Avatar = membleCommenter.Avatar;
            }
            return viewModel;
        });
    }
}
loading