using iWare.Authorize.Dto;
using Newtonsoft.Json;
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))
{
AuthorizeFunRetEntity newRet = JsonConvert.DeserializeObject(rst);
if (EnDecode.ValidatePermanentLicense(firstFile.FullName))
{
return AuthorizeFunRetEntity.Success("成功", newRet);
}
else
return ValidateLicenseForDev(firstFile.FullName, input, newRet);
}
else
{
return AuthorizeFunRetEntity.Fail("无效的授权文件");
}
}
catch (Exception ex)
{
return AuthorizeFunRetEntity.Fail("异常:" + ex.Message);
}
}
///
/// 验证开发授权
///
///
///
private static AuthorizeFunRetEntity ValidateLicenseForDev(string filePath, ValidateLicenseInput input, AuthorizeFunRetEntity newRet)
{
var str_expiryDate = "";
if (!string.IsNullOrEmpty(newRet.expiryDate))
{
str_expiryDate = Convert.ToDateTime(newRet.expiryDate).ToString("yyyy-MM-dd HH:mm:ss");
}
//读取 开发授权
var val = EnDecode.ValidateDevLicense(filePath);
if (val.IsValid)
{
if (input != null && input.WaringDays != null)
{
int waringDays = (int)input.WaringDays;
double _my_RemainingDays = Convert.ToDouble(val.RemainingDays.ToString("0.0"));
if (waringDays >= _my_RemainingDays)
{
return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, $"授权剩余天数{_my_RemainingDays}小于{waringDays}天,到期日[{str_expiryDate}]");
}
}
return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, newRet);
}
else
{
if (string.IsNullOrEmpty(newRet.expiryDate))
{
return AuthorizeFunRetEntity.Fail($"授权失败", val.RemainingDays, newRet);
}
return AuthorizeFunRetEntity.Fail($"授权失败,到期日[{str_expiryDate}]", val.RemainingDays, newRet);
}
}
}
}