using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using MP.Data.DatabaseModels; using MP.Stats.Data; using NLog; using NLog.Fluent; 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 { public TaskController(IConfiguration configuration, MpStatsService DataService) { Log.Trace("Starting TaskController"); _configuration = configuration; DService = DataService; Log.Trace("Avviato TaskController"); } /// /// List of available task and last execution data /// /// [HttpGet("GetList")] public async Task> GetList() { List answ = await DService.TaskListAll(MP.Data.Objects.Enums.Task2ExeType.ND, ""); return answ; } /// /// Call for execution of due task and report state /// /// [HttpGet] public async Task> ExecuteAndReturnGet() { List answ = new List(); List listTask = await DService.TaskListAll(MP.Data.Objects.Enums.Task2ExeType.ND, ""); // 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.TaskId, true); answ.Add(result); } // resituisco return answ; } private static IConfiguration _configuration = null!; private static Logger Log = LogManager.GetCurrentClassLogger(); /// /// Dataservice x accesso DB /// protected MpStatsService DService { get; set; } } }