using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using DW5S.DTO; using DW5S.Entity; using DW5S.Repostory; using System.Threading; using DW5S.WebApi; using Microsoft.AspNetCore.Mvc; using Serilog; using Serilog.Core; using DW5S.Service; namespace DW5S.App.Controllers { /// /// 任务相关接口 /// public class TaskController : BaseController { ILogger logger { get; set; } IUnitOfWork unitOfWork { get; set; } TestService ts { get; set; } TestService ss; public TaskController() { } /// /// 获取客户端IP地址 /// /// [HttpGet] public AjaxResult GetClientIP() { try { var dd1=IocContainer.UnitOfWork; var dd2=IocContainer.UnitOfWork; //var qq = logger.ToString(); var ip = RemoteIp; return Success(ip); } catch (Exception ex) { string error = "获取客户端IP出错"; //logger.Error(ex, error); return Error(error); } } /// /// 停止任务 /// /// 任务停止参数 /// [HttpPost] public async Task StopAsync(TaskStopHandleDto dto) { try { var repsTask = unitOfWork.Of(); var item = await repsTask.GetByIdAsync(dto.ID); if (item == null) { return Error($"任务停止失败,找不到ID={dto.ID}的任务"); } if (item.TaskState == EnumTaskState.Stopped) Thread.Sleep(2000); item.TaskState = EnumTaskState.Stopped; await repsTask.AddOrUpdateAsync(item); await unitOfWork.SaveAsync(); Messenger.Defalut.Pub("任务状态改变", dto.ID); //if (dto.StopType == EnumTaskStopType.Properly) //logger.Information($"任务停止完成,ID={dto.ID},停止原因={dto.StopReason}"); //else //logger.Error($"任务停止完成,ID={dto.ID},停止原因={dto.StopReason}"); return Success(); } catch (Exception ex) { string msg = $"任务停止异常.ID={dto.ID}"; //logger.Error(ex, msg); return Error(msg); } } } }