using System.Collections.Generic;
using System.IO;
using System.Linq;
using IwbZero.AppServiceBase;
using WeEngine.Application.Packages.Dto;
using WeEngine.Functions;
namespace WeEngine.Application.Packages
{
///
///演练方案包维护
///
public class EnginePackageAppService : IwbZeroAppServiceBase, IEnginePackageAppService
{
public EnginePackageAppService()
{
PackageBasePath = $"{WeEngineConst.DataFileBasePath}Packages/";
}
private string PackageBasePath { get; }
///
/// 预加载方案包
///
///
public void PreLoadPackage(string packageNo)
{
CacheManager.GetCache(EngineCacheName.Package).Remove(packageNo);
CacheManager.GetPackageXml(packageNo);
}
///
/// 重新加载方案包
///
///
public void ReLoadPackage(string packageNo)
{
var path = $"{PackageBasePath}{packageNo}/";
if (Directory.Exists(path))
{
Directory.Delete(path, true);
}
PreLoadPackage(packageNo);
}
///
/// 查询引擎函数
///
///
public List QueryFunctions()
{
var funList= new List();
var exprFunList= ExprFunction.LoadByXml(ExprFunction.GetFunXmlNode());
if (exprFunList.Any())
{
foreach (var exprFun in exprFunList)
{
if (exprFun.IsPublic)
{
funList.Add(new FunctionDto(exprFun));
}
}
}
return funList;
}
}
}