Files
limanapp/LiMan.Api/Controllers/LicenzaController.cs
T
2021-12-20 19:02:31 +01:00

99 lines
3.3 KiB
C#

using Core;
using LiMan.APi.Data;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace LiMan.APi.Controllers
{
/// <summary>
/// Controller livello LICENZA
/// </summary>
[Route("api/licenza")]
[ApiController]
public class LicenzaController : ControllerBase
{
#region Private Fields
/// <summary>
/// Classe per logging
/// </summary>
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Public Constructors
/// <summary>
/// Init generico
/// </summary>
/// <param name="DataService"></param>
public LicenzaController(ApiDataService DataService)
{
dataService = DataService;
Log.Info("Avviata classe LicenzaController");
}
#endregion Public Constructors
#region Protected Properties
/// <summary>
/// Dataservice x accesso DB
/// </summary>
protected ApiDataService dataService { get; set; }
#endregion Protected Properties
#region Public Methods
/// GET api/licenza/id
/// <summary>
/// Recupera dati Licenza Applicativa (id licenza + num utenze) dati cliente + programma + licenza ATTUALE
/// </summary>
/// <param name="id">Codice cliente/Installazione</param>
/// <param name="CodApp">Codice Applicazione</param>
/// <param name="Chiave">Chiave licenza da validare</param>
/// <returns></returns>
[HttpGet("{id}")]
public async Task<List<DB.DTO.ApplicativoDTO>> Get(string id, string CodApp, string Chiave)
{
var result = await dataService.LicenzeSearch(id, CodApp, Chiave, false);
await dataService.recordCall(id, CodApp, $"GET:api/licenza:{Chiave}");
return result;
}
/// POST api/licenza
/// <summary>
/// Recupera dati Licenza Applicativa (id licenza + num utenze) dati cliente + programma + licenza ATTUALE
/// </summary>
/// <param name="AppInfo">Info licenza in formato LicenseCoord</param>
/// <returns></returns>
[HttpPost()]
public async Task<List<DB.DTO.ApplicativoDTO>> Post([FromBody] LicenseCoord AppInfo)
{
var result = await dataService.LicenzeSearch(AppInfo.CodInst, AppInfo.CodApp, AppInfo.MasterKey, false);
await dataService.recordCall(AppInfo.CodInst, AppInfo.CodApp, $"POST:api/licenza:{AppInfo.MasterKey}");
return result;
}
/// POST api/licenza/refreshPayload
/// <summary>
/// Effettua refresh del payload calcolato ed aggiorna record ed infine lo restituisce
/// </summary>
/// <param name="AppInfo">Info licenza in formato LicenseCoord</param>
[HttpPost("refreshPayload")]
public async Task<DB.DTO.ApplicativoDTO> RefreshPayload([FromBody] LicenseCoord AppInfo)
{
var done = await dataService.LicenzaRefreshPayload(AppInfo);
await dataService.recordCall(AppInfo.CodInst, AppInfo.CodApp, $"POST:api/licenza/refreshPayload:{AppInfo.MasterKey}");
return done;
}
#endregion Public Methods
}
}