|
|
@@ -0,0 +1,66 @@
|
|
|
+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
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ ///演练方案包维护
|
|
|
+ /// </summary>
|
|
|
+ public class EnginePackageAppService : IwbZeroAppServiceBase, IEnginePackageAppService
|
|
|
+ {
|
|
|
+ public EnginePackageAppService()
|
|
|
+ {
|
|
|
+ PackageBasePath = $"{WeEngineConst.DataFileBasePath}Packages/";
|
|
|
+ }
|
|
|
+ private string PackageBasePath { get; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 预加载方案包
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="packageNo"></param>
|
|
|
+ public void PreLoadPackage(string packageNo)
|
|
|
+ {
|
|
|
+ CacheManager.GetCache(EngineCacheName.Package).Remove(packageNo);
|
|
|
+ CacheManager.GetPackageXml(packageNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 重新加载方案包
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="packageNo"></param>
|
|
|
+ public void ReLoadPackage(string packageNo)
|
|
|
+ {
|
|
|
+ var path = $"{PackageBasePath}{packageNo}/";
|
|
|
+ if (Directory.Exists(path))
|
|
|
+ {
|
|
|
+ Directory.Delete(path, true);
|
|
|
+ }
|
|
|
+ PreLoadPackage(packageNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 查询引擎函数
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public List<FunctionDto> QueryFunctions()
|
|
|
+ {
|
|
|
+ var funList= new List<FunctionDto>();
|
|
|
+ var exprFunList= ExprFunction.LoadByXml(ExprFunction.GetFunXmlNode());
|
|
|
+ if (exprFunList.Any())
|
|
|
+ {
|
|
|
+ foreach (var exprFun in exprFunList)
|
|
|
+ {
|
|
|
+ if (exprFun.IsPublic)
|
|
|
+ {
|
|
|
+ funList.Add(new FunctionDto(exprFun));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return funList;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|