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 X1LeoTaskServer54.Service;
using System.Threading.Tasks;
namespace X1LeoTaskServer54.Controllers
{
///
///低轨单星任务处理接口
///
public class LeoSat1TaskProcessingController : BaseController
{
/*******************
* !!!不要在Controller中放业务逻辑的全局变量(每次调用Http接口Controller都可能是一个新的对象)
* Controller主要就是调用Service层的东西。Service层执行业务逻辑和调用Repository层操作数据库
* ********************/
private readonly TaskService _service;
public LeoSat1TaskProcessingController(TaskService service)
{
_service = service;
}
///
/// 执行任务
///
/// 任务信息
///
[HttpPost]
public async Task Run(LeoSat1TaskHandleDto dto)
{
try
{
await XdCxRhDW.UI.Lib.LogHelper.Info($"接收到任务编号:{dto.ID}");
_service.StartAsync(dto);
return Success();
}
catch (Exception ex)
{
await XdCxRhDW.UI.Lib.LogHelper.Error($"【任务{dto.ID}】任务执行出错!", ex);
return Error($"【任务{dto.ID}】任务执行出错!");
}
}
///
/// 任务停止
///
///
///
[HttpPost]
public async Task Stop(TaskStopHandleDto dto)
{
try
{
await XdCxRhDW.UI.Lib.LogHelper.Warning($"用户停止了任务,ID={dto.ID}");
_service.Stop();
return Success();
}
catch (Exception ex)
{
await XdCxRhDW.UI.Lib.LogHelper.Error($"【任务{dto.ID}】停止执行异常!", ex);
return Error($"【任务{dto.ID}】停止执行异常!");
}
}
[HttpGet]
public async Task> GetAppSetting()
{
try
{
var res = await _service.GetAppSetting();
return Success(res);
}
catch (Exception ex)
{
await XdCxRhDW.UI.Lib.LogHelper.Error($"获取一星配置文件异常", ex);
return Error($"获取一星配置文件异常!");
}
}
}
}