TaskController.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Data.Entity;
  5. using System.Data.Entity.Migrations;
  6. using System.Data.SqlClient;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Web.Http;
  12. using XdCxRhDW.Dto;
  13. using XdCxRhDW.Api;
  14. using XdCxRhDW.Entity;
  15. using XdCxRhDW.Repostory;
  16. using XdCxRhDW.WebApi;
  17. namespace XdCxRhDW.App.Controllers
  18. {
  19. /// <summary>
  20. /// 任务相关接口
  21. /// </summary>
  22. public class TaskController : BaseController
  23. {
  24. /// <summary>
  25. /// 停止任务
  26. /// </summary>
  27. /// <param name="dto">任务停止参数</param>
  28. /// <returns></returns>
  29. [HttpPost]
  30. public async Task<AjaxResult> StopTask(TaskStopHandleDto dto)
  31. {
  32. try
  33. {
  34. using (RHDWContext db = new RHDWContext())
  35. {
  36. var item = await db.TaskInfos.FirstOrDefaultAsync(p => p.ID == dto.ID);
  37. if (item == null)
  38. {
  39. return Error($"任务停止失败,找不到ID={dto.ID}的任务");
  40. }
  41. item.TaskState = EnumTaskState.Stopped;
  42. await db.SaveChangesAsync();
  43. }
  44. Messenger.Defalut.Pub("任务状态改变", dto.ID);
  45. Serilog.Log.Information($"任务停止完成,ID={dto.ID}.停止原因:{dto.StopReason}");
  46. return Success();
  47. }
  48. catch (Exception ex)
  49. {
  50. Serilog.Log.Error(ex, $"任务停止异常.ID={dto.ID}");
  51. return Error(ex.Message);
  52. }
  53. }
  54. }
  55. }