using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using MP.TaskMan.Models; using MP.TaskMan.Services; using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace MP.Stats.Controllers { [Route("api/[controller]")] [ApiController] public class TaskController : ControllerBase { #region Public Constructors public TaskController(IConfiguration configuration, TaskService DataService) { Log.Trace("Starting TaskController"); _configuration = configuration; DService = DataService; Log.Trace("Avviato TaskController"); } #endregion Public Constructors #region Public Methods /// /// Call for execution of due task and report state /// /// [HttpGet] public async Task> ExecuteAndReturnGet() { List answ = new List(); List listTask = await DService.TaskListAll(TaskMan.Objects.Enums.Task2ExeType.ALL, false, ""); // verifico SE ci siano task in scadenza... DateTime adesso = DateTime.Now; var task2exe = listTask.Where(x => x.DtNextExec <= adesso).ToList(); foreach (var taskRec in task2exe) { TaskResultModel result = await DService.ExecuteTask(taskRec, true); answ.Add(result); } // resituisco return answ; } /// /// List of available task and last execution data /// /// [HttpGet("GetList")] public async Task> GetList() { List answ = await DService.TaskListAll(TaskMan.Objects.Enums.Task2ExeType.ALL, false, ""); return answ; } #endregion Public Methods #region Protected Properties /// /// Dataservice x accesso DB /// protected TaskService DService { get; set; } #endregion Protected Properties #region Private Fields private static IConfiguration _configuration = null!; private static Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Fields } }