using System;
using Abp.Application.Services;
using Abp.Runtime.Caching;
using IwbZero.AppServiceBase;
using IwbZero.ToolCommon.StringModel;
using WeEngine.Packages;
namespace WeEngine
{
///
/// 演练实施
///
public class EngineRunAppService: IwbZeroAppServiceBase, IEngineRunAppService
{
public EngineRunAppService(ICacheManager cacheManager, PackageRunner packageRunner)
{
PackageRunner = packageRunner;
CacheManager = cacheManager;
}
public PackageRunner PackageRunner { get; }
///
/// 开启训练营
///
///
public void Start(string no)
{
if (no.IsEmpty())
{
CheckErrors("方案包编号不能为空!");
return;
}
PackageInfo package;
try
{
var xmlNode = CacheManager.GetPackageXml(no);
package = (PackageInfo) new PackageInfo().CreateNodeByXmlNode(xmlNode);
}
catch (Exception e)
{
CheckErrors($"方案包信息解析失败[{e.Message}]");
return;
}
if (package==null)
{
CheckErrors("方案包信息解析失败!");
return;
}
var np = (PackageInfo)package.Clone();
np.RunningId = "G1";
PackageRunner.Run(np);
}
}
public interface IEngineRunAppService : IApplicationService
{
void Start(string no);
}
}