using DevExpress.Utils.Extensions; using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; using System.Web.Http; using XdCxRhDW.Dto; using XdCxRhDW.WebApi; using X2LeoTaskServer54.Service; namespace X2LeoTaskServer54.Controllers { /// ///低轨双星任务处理接口 /// public class LeoSat2TaskProcessingController : BaseController { /******************* * !!!不要在Controller中放业务逻辑的全局变量(每次调用Http接口Controller都可能是一个新的对象) * Controller主要就是调用Service层的东西。Service层执行业务逻辑和调用Repository层操作数据库 * ********************/ private readonly TaskService _service; public LeoSat2TaskProcessingController(TaskService service) { _service = service; } /// /// 执行任务 /// /// 任务信息 /// [HttpPost] public AjaxResult Run(LeoSat2TaskHandleDto dto) { try { LogHelper.Info($"接收到任务编号:{dto.ID}"); _service.StartAsync(dto); return Success(); } catch (Exception ex) { Serilog.Log.Error(ex, "任务处理出错!"); return Error("任务处理出错"); } } /// /// 任务停止 /// /// /// [HttpPost] public AjaxResult Stop(TaskStopHandleDto dto) { try { LogHelper.Warning($"用户停止了任务,ID={dto.ID}"); _service.Stop(); return Success(); } catch (Exception ex) { Serilog.Log.Error(ex, $"【任务{dto.ID}】停止执行异常!"); return Error($"【任务{dto.ID}】停止执行异常!"); } } } }