XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEExtension.NetCore.DelegateExtension;

namespace XFEExtension.NetCore.CyberComm.XCCNetWork;

/// <summary>
/// XCC文件
/// </summary>
/// <param name="groupId">群组ID</param>
/// <param name="messageId">文件消息ID</param>
/// <param name="fileType">文件类型</param>
/// <param name="sender">发送者</param>
/// <param name="sendTime">发送时间</param>
/// <param name="fileBuffer">文件的Buffer</param>
public class XCCFile(string groupId, string messageId, XCCFileType fileType, string sender, DateTime? sendTime, byte[]? fileBuffer = null)
{
    /// <summary>
    /// 文件加载完成时触发
    /// </summary>
    public event XFEEventHandler<XCCFile>? FileLoaded;
    /// <summary>
    /// 群组ID
    /// </summary>
    public string GroupId { get; } = groupId;
    /// <summary>
    /// 消息ID
    /// </summary>
    public string MessageId { get; } = messageId;
    /// <summary>
    /// 发送者
    /// </summary>
    public string Sender { get; } = sender;
    /// <summary>
    /// 发送时间
    /// </summary>
    public DateTime? SendTime { get; } = sendTime;
    /// <summary>
    /// XCC文件类型
    /// </summary>
    public XCCFileType FileType { get; } = fileType;
    /// <summary>
    /// 是否已加载
    /// </summary>
    public bool Loaded { get; private set; } = fileBuffer is not null;
    /// <summary>
    /// 文件流
    /// </summary>
    public byte[]? FileBuffer { get; set; } = fileBuffer;
    /// <summary>
    /// 加载文件
    /// </summary>
    /// <param name="fileBuffer">文件流</param>
    public void LoadFile(byte[] fileBuffer)
    {
        FileBuffer = fileBuffer;
        Loaded = true;
        FileLoaded?.Invoke(this);
    }
}