Files
XplorePlane/XP.Common/License/Interfaces/ILicenseService.cs
T

68 lines
2.4 KiB
C#

using System;
using XP.Common.License.Enums;
using XP.Common.License.Implementations;
namespace XP.Common.License.Interfaces;
/// <summary>
/// 授权服务接口 | License service interface
/// </summary>
public interface ILicenseService
{
/// <summary>
/// 执行授权检查 | Perform authorization check
/// </summary>
/// <returns>授权检查结果 | License check result</returns>
LicenseCheckResult CheckAuthorization();
/// <summary>
/// 当前会话是否已授权 | Whether the current session is authorized
/// </summary>
bool IsAuthorized { get; }
/// <summary>
/// 获取授权到期日期 | Get license expiration date
/// </summary>
/// <returns>授权到期日期,未授权时返回 null | License expiration date, null if not authorized</returns>
DateTime? GetExpirationDate();
/// <summary>
/// 检查模块是否授权 | Check if module is licensed
/// </summary>
/// <param name="moduleId">模块ID | Module ID</param>
/// <returns>模块是否授权 | Whether the module is licensed</returns>
bool IsModuleLicensed(ushort moduleId);
/// <summary>
/// 获取SMA到期日期 | Get SMA expiration date
/// </summary>
/// <returns>SMA到期日期,未启用时返回 null | SMA expiration date, null if not enabled</returns>
DateTime? GetSmaDate();
/// <summary>
/// 当前授权模式 | Current license mode
/// </summary>
LicenseMode LicenseMode { get; }
/// <summary>
/// 临时测试模式超时事件(到期时触发,应用应执行正常关闭流程)| Temporary test mode timeout event (fires when expired, app should perform graceful shutdown)
/// </summary>
event EventHandler TestModeTimeout;
/// <summary>
/// 临时测试模式剩余5分钟警告事件 | Temporary test mode 5-minute warning event
/// </summary>
event EventHandler TestModeWarning5Min;
/// <summary>
/// 临时测试模式剩余1分钟警告事件 | Temporary test mode 1-minute warning event
/// </summary>
event EventHandler TestModeWarning1Min;
/// <summary>
/// 获取临时测试模式剩余时间 | Get remaining time in temporary test mode
/// </summary>
/// <returns>剩余时间(秒),非测试模式返回 0 | Remaining time in seconds, 0 if not in test mode</returns>
int GetRemainingTestTime();
}