| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | 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{    /// <summary>    /// 任务相关接口    /// </summary>    public class TaskController : BaseController    {        ILogger logger { get; set; }        IUnitOfWork unitOfWork { get; set; }        TestService ts { get; set; }        TestService ss;        public TaskController()        {        }        /// <summary>        /// 获取客户端IP地址        /// </summary>        /// <returns></returns>        [HttpGet]        public AjaxResult<string> 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<string>(error);            }        }        /// <summary>        /// 停止任务        /// </summary>        /// <param name="dto">任务停止参数</param>        /// <returns></returns>        [HttpPost]        public async Task<AjaxResult> StopAsync(TaskStopHandleDto dto)        {            try            {                var repsTask = unitOfWork.Of<TaskInfo>();                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);            }        }    }}
 |