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

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEExtension.NetCore.ServerInteractive.Attributes;
using XFEExtension.NetCore.ServerInteractive.Utilities.Helpers;
using System.Globalization;

namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server.Services.CoreService;

/// <summary>
/// 核心日志服务
/// </summary>
public partial class CoreLogService : ServerCoreUserServiceBase
{
    /// <summary>
    /// 获取日志权限
    /// </summary>
    public int GetPermission { get; set; }
    /// <summary>
    /// 清理日志权限
    /// </summary>
    public int ClearPermission { get; set; }

    /// <summary>
    /// 获取服务器日志
    /// </summary>
    [EntryPoint("log/get")]
    public async Task GetLog()
    {
        Console.Write("获取服务器日志请求");
        UserHelper.ValidatePermission(Json?["session"]?.GetString(), Json?["deviceInfo"]?.GetString(), ReturnArgs.ClientIP, GetPermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs);
        if (!DateTimeOffset.TryParse(Json?["startDateTime"]?.GetString(), CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var startDatetime)) throw Error("起始日期必须为 ISO-8601 格式");
        if (!DateTimeOffset.TryParse(Json?["endDateTime"]?.GetString(), CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var endDatetime)) throw Error("结束日期必须为 ISO-8601 格式");
        await Close(XFEConsole.XFEConsole.Log.Export(startDatetime.UtcDateTime, endDatetime.UtcDateTime));
    }

    /// <summary>
    /// 清除服务器日志
    /// </summary>
    [EntryPoint("log/clear")]
    public void ClearLog()
    {
        Console.Write("清除服务器日志请求");
        UserHelper.ValidatePermission(Json?["session"]?.GetString(), Json?["deviceInfo"]?.GetString(), ReturnArgs.ClientIP, ClearPermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs);
        if (File.Exists("server.log"))
            File.Delete("server.log");
        XFEConsole.XFEConsole.Log.Clear();
        OK();
    }
}