diff --git a/MagMan.Data.Tenant/DbModels/LogMachineModel.cs b/MagMan.Data.Tenant/DbModels/LogMachineModel.cs index 28a796d..87dbc2d 100644 --- a/MagMan.Data.Tenant/DbModels/LogMachineModel.cs +++ b/MagMan.Data.Tenant/DbModels/LogMachineModel.cs @@ -24,21 +24,26 @@ namespace MagMan.Data.Tenant.DbModels [Key, Column("DbId"), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int LogDbId { get; set; } - /// - /// Id macchina (diMagMan) - /// - public int MachineID { get; set; } = 0; - /// /// Key di riferimento per il progetto /// public int KeyNum { get; set; } = 0; + /// + /// Id macchina (diMagMan) + /// + public int MachineID { get; set; } = 0; + + /// + /// Progetto di riferimento (CloudId) + /// + public int ProjDbId { get; set; } + /// /// Data Registrazione /// [Column("DtEvent")] - public DateTime DtRif { get; set; } = DateTime.Now; + public DateTime DtEvent { get; set; } = DateTime.Now; #if false /// @@ -107,8 +112,8 @@ namespace MagMan.Data.Tenant.DbModels /// /// Stato da enum Core /// - [Column("ResultType")] - public ResultTypes ResultType { get; set; } = ResultTypes.NULL; + [Column("EvType")] + public MachLogTypes EvType { get; set; } = MachLogTypes.NULL; /// /// Indirizzo VAR diff --git a/MagMan.UI/Controllers/KeysController.cs b/MagMan.UI/Controllers/KeysController.cs index 9dee97b..3d78728 100644 --- a/MagMan.UI/Controllers/KeysController.cs +++ b/MagMan.UI/Controllers/KeysController.cs @@ -37,7 +37,7 @@ namespace MagMan.UI.Controllers [HttpGet] public async Task> Get() { - // se non ho chaive --> vuoto! + // se non ho chiave --> vuoto! List ListRecords = new List(); await Task.Delay(100); return ListRecords; diff --git a/MagMan.UI/Controllers/LogMachineController.cs b/MagMan.UI/Controllers/LogMachineController.cs new file mode 100644 index 0000000..0d2c4cd --- /dev/null +++ b/MagMan.UI/Controllers/LogMachineController.cs @@ -0,0 +1,136 @@ +using MagMan.Core.DTO; +using MagMan.Core; +using MagMan.Data.Admin.DbModels; +using MagMan.Data.Admin.Services; +using MagMan.Data.Tenant.Services; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using NLog; +using MagMan.Data.Tenant.DbModels; + +namespace MagMan.UI.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class LogMachineController : ControllerBase + { + #region Public Constructors + + public LogMachineController(MTAdminService MTDataService, TenantService TDataService) + { + MTAdmService = MTDataService; + TService = TDataService; + // json serializer... FIX errore loop circolare https://www.ryadel.com/en/jsonserializationexception-self-referencing-loop-detected-error-fix-entity-framework-asp-net-core/ + JSSettings = new JsonSerializerSettings() + { + ReferenceLoopHandling = ReferenceLoopHandling.Ignore + }; + Log.Info("Avviata classe LogMachineController"); + } + + #endregion Public Constructors + + #region Public Methods + + /// + /// Controllo status Alive + /// GET: api/LogMachine/alive + /// + /// + [HttpGet("alive")] + public string alive() + { + return $"OK"; + } + + // GET api/LogMachine + [HttpGet] + public async Task> Get() + { + // se non ho chiave --> vuoto! + List ListRecords = new List(); + await Task.Delay(100); + return ListRecords; + } + + /// + /// Elenco ultimi valori LogMachineModel dato RestToken + /// + /// Rest Token cliente + /// Chiave associata ai progetti + /// + // GET api/LogMachine/2cba60c7-7be4-40b1-aa0d-52e7c71fc1a7 + [HttpGet("{id}")] + public async Task> Get(string id, int KeyNum, int numVal) + { + List ListRecords = new List(); +#if false + if (!string.IsNullOrEmpty(id)) + { + // in primis recupero codice chiave da token... + int nKey = await MTAdmService.MainKeyByToken(id); + var rawList = await TService.ProjectGetAll(nKey); + ListRecords = rawList.Select(x => TService.ProjectToDto(x)).ToList(); + } +#endif + return ListRecords; + } + + /// + /// Processa una chiamata POST per l'invio di un oggetto di upsert progetto + /// PUT: api/Inventory/upsert/00000000-0000-0000-0000-000000000000 + /// + /// token comunicazione + /// ID del progetto creato da usare come CloudId + [HttpPost("upsert/{id}")] + public async Task upsert(string id, [FromBody] RestPayload.LogData rawData) + { + int answ = 0; + // verifico ci sia valore + if (!string.IsNullOrEmpty(id) && rawData != null && rawData.LogList != null) + { + // in primis recupero codice chiave da token... + int nKey = await MTAdmService.MainKeyByToken(id); + if (nKey > 0) + { +#if false + // converto ProjDto --> DB + var currRec = TService.ProjectFromDto(rawData.Project); + try + { + answ = await TService.ProjectUpsert(nKey, currRec); + } + catch (Exception exc) + { + Log.Error($"ProjectsController.upsert | Errore in fase salvataggio ProjectDTO{Environment.NewLine}{exc}"); + } + // resetto cache redis + await MTAdmService.FlushRedisCache(); +#endif + } + } + return answ; + } + + #endregion Public Methods + + #region Private Fields + + private static JsonSerializerSettings? JSSettings; + + /// + /// Classe per logging + /// + private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); + + #endregion Private Fields + + #region Private Properties + + private MTAdminService MTAdmService { get; set; } = null!; + private TenantService TService { get; set; } = null!; + + #endregion Private Properties + } +}