EngineRunAppService.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using Abp.Application.Services;
  3. using Abp.Runtime.Caching;
  4. using IwbZero.AppServiceBase;
  5. using IwbZero.ToolCommon.StringModel;
  6. using WeEngine.Packages;
  7. namespace WeEngine
  8. {
  9. /// <summary>
  10. /// 演练实施
  11. /// </summary>
  12. public class EngineRunAppService: IwbZeroAppServiceBase, IEngineRunAppService
  13. {
  14. public EngineRunAppService(ICacheManager cacheManager, PackageRunner packageRunner)
  15. {
  16. PackageRunner = packageRunner;
  17. CacheManager = cacheManager;
  18. }
  19. public PackageRunner PackageRunner { get; }
  20. /// <summary>
  21. /// 开启训练营
  22. /// </summary>
  23. /// <returns></returns>
  24. public void Start(string no)
  25. {
  26. if (no.IsEmpty())
  27. {
  28. CheckErrors("方案包编号不能为空!");
  29. return;
  30. }
  31. PackageInfo package;
  32. try
  33. {
  34. var xmlNode = CacheManager.GetPackageXml(no);
  35. package = (PackageInfo) new PackageInfo().CreateNodeByXmlNode(xmlNode);
  36. }
  37. catch (Exception e)
  38. {
  39. CheckErrors($"方案包信息解析失败[{e.Message}]");
  40. return;
  41. }
  42. if (package==null)
  43. {
  44. CheckErrors("方案包信息解析失败!");
  45. return;
  46. }
  47. var np = (PackageInfo)package.Clone();
  48. np.RunningId = "G1";
  49. PackageRunner.Run(np);
  50. }
  51. }
  52. public interface IEngineRunAppService : IApplicationService
  53. {
  54. void Start(string no);
  55. }
  56. }