- continuo modifiche x gestione task eseguiti
This commit is contained in:
Samuele Locatelli
2024-10-25 16:52:45 +02:00
parent e4fd85c9cb
commit d3c95a9fe1
23 changed files with 341 additions and 50 deletions
+51 -5
View File
@@ -1,5 +1,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
using MP.AppAuth.Services;
using MP.Data.Controllers;
using MP.Data.DatabaseModels;
using Newtonsoft.Json;
@@ -61,6 +62,9 @@ namespace MP.Data.Services
DataSource = connStrParams["Server"];
DataBase = connStrParams["Database"];
}
// conf rest call service
RCallService = new RestCallService(_configuration);
}
#endregion Public Constructors
@@ -88,15 +92,56 @@ namespace MP.Data.Services
/// <summary>
/// Chiamata esecuzione di un singolo task programmato
/// </summary>
/// <param name="TaskId"></param>
/// <param name="TaskRec">Task richiesto</param>
/// <param name="SchedNext">Se true rischedula successiva chiamata</param>
/// <returns></returns>
public async Task<TaskResultModel> ExecuteTask(int TaskId, bool SchedNext)
public async Task<TaskResultModel> ExecuteTask(TaskListModel TaskRec, bool SchedNext)
{
TaskResultModel dbResult = MLController.ExecuteTask(TaskId, SchedNext);
TaskResultModel answ = new TaskResultModel()
{
Task = $"TaskId: {TaskRec.TaskId} | {TaskRec.TType}",
ExecResult = -1,
TextResult = "Task Not recognized"
};
// verifico tipo di task ed eseguo di conseguenza...
switch (TaskRec.TType)
{
//case Task2ExeType.ND:
// break;
//case Task2ExeType.Exe:
// break;
//case Task2ExeType.SqlCommand:
// break;
case Task2ExeType.SqlStored:
answ = MLController.ExecuteSqlTask(TaskRec.TaskId, SchedNext);
break;
case Task2ExeType.RestCallGet:
DateTime dtStart = DateTime.Now;
// in primis testo la chiamata al servizio Health
string rAnsw = await RCallService.CheckServer();
// se ok effettuo vera chiamata...
if (rAnsw.ToUpper() == "OK")
{
var callResp = await RCallService.CallRestGet(TaskRec.Command, TaskRec.Args);
DateTime dtEnd = DateTime.Now;
TaskExecModel tExeMod = new TaskExecModel()
{
DtEnd = dtEnd,
DtStart = dtStart,
IsError = callResp.StatusCode != System.Net.HttpStatusCode.OK,
TaskId = TaskRec.TaskId,
Result = $"{callResp.Content}".Replace("\"", ""),
};
// salvo su DB
answ = MLController.TaskExecSaveExecuted(TaskRec.TaskId, SchedNext, tExeMod);
}
break;
default:
break;
}
// svuoto cache!
await FlushCache("Task");
return dbResult;
return answ;
}
/// <summary>
@@ -246,7 +291,7 @@ namespace MP.Data.Services
bool dbResult = MLController.TaskListUpsert(rec2upd);
// svuoto cache!
await FlushCache("Task");
return await Task.FromResult(dbResult);
return dbResult;
}
#endregion Public Methods
@@ -286,6 +331,7 @@ namespace MP.Data.Services
#region Private Properties
private static MpLandController MLController { get; set; } = null!;
private RestCallService RCallService { get; set; } = null!;
#endregion Private Properties