using iWare.Authorize.Dto;
using ProjectCode;
namespace iWare.Authorize
{
///
/// 授权帮助类
///
public class AuthorizeHelper
{
///
/// 验证授权
///
///
public static AuthorizeFunRetEntity ValidateLicense(ValidateLicenseInput input)
{
try
{
//1、获取mac地址
var macAddresses = EnDecode.GetAllMacAddresses();
//2、找到 授权文件
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
DirectoryInfo theFolder = new DirectoryInfo(baseDir + @"\\AuthorizeFile\\lic");
//遍历文件,读取第一个文件
var files = theFolder.GetFiles();
if (files.Length == 0)
{
return AuthorizeFunRetEntity.Fail("未找到授权文件");
}
var firstFile = files.First();
//3、读取 永久授权
string rst = EnDecode.ReadAndValidateLicenseFile(firstFile.FullName);
if (!string.IsNullOrEmpty(rst))
{
if (EnDecode.ValidatePermanentLicense(firstFile.FullName))
{
return AuthorizeFunRetEntity.Success("成功");
}
else
return ValidateLicenseForDev(firstFile.FullName, input);
}
else
{
return AuthorizeFunRetEntity.Fail("无效的授权文件");
}
}
catch (Exception ex)
{
return AuthorizeFunRetEntity.Fail("异常:" + ex.Message);
}
}
///
/// 验证开发授权
///
///
///
private static AuthorizeFunRetEntity ValidateLicenseForDev(string filePath, ValidateLicenseInput input)
{
//读取 开发授权
var val = EnDecode.ValidateDevLicense(filePath);
if (val.IsValid)
{
if (input != null && input.WaringDays != null)
{
int waringDays = (int)input.WaringDays;
if (waringDays >= val.RemainingDays)
{
return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, $"授权剩余天数{val.RemainingDays}小于{waringDays}天");
}
}
return AuthorizeFunRetEntity.Success("成功", val.RemainingDays);
}
else
return AuthorizeFunRetEntity.Fail("授权失败", val.RemainingDays);
}
}
}