Completato primo "giro" gestione attivazioni
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Core
|
||||
{
|
||||
public class UserLicenseRequest
|
||||
{
|
||||
public string MasterKey { get; set; } = "";
|
||||
public Dictionary<string, string> ParamDict { get; set; } = new Dictionary<string, string>();
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using LiMan.APi.Data;
|
||||
using Core;
|
||||
using LiMan.APi.Data;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NLog;
|
||||
@@ -39,8 +40,7 @@ namespace LiMan.APi.Controllers
|
||||
/// <summary>
|
||||
/// Recupero record di sub licenza (con chiavi anonimizzate)
|
||||
/// </summary>
|
||||
/// <param name="id">Idx licenza MASTER</param>
|
||||
/// <param name="CodImpiego">Codice univoco impiego licenza</param>
|
||||
/// <param name="id">ID Licenza MASTER</param>
|
||||
/// <returns></returns>
|
||||
// GET api/attivazioni/5
|
||||
[HttpGet("{id}")]
|
||||
@@ -53,12 +53,12 @@ namespace LiMan.APi.Controllers
|
||||
/// <summary>
|
||||
/// Verifica recupero un record di sub licenza
|
||||
/// </summary>
|
||||
/// <param name="id">Idx licenza MASTER</param>
|
||||
/// <param name="id">ID Licenza MASTER</param>
|
||||
/// <param name="CodImpiego">Codice univoco impiego licenza</param>
|
||||
/// <returns></returns>
|
||||
// GET api/attivazioni/5
|
||||
[HttpGet("verifica/{id}")]
|
||||
public async Task<DB.DTO.AttivazioneDTO> VerificaImpiego(int id, string CodImpiego)
|
||||
// POST api/attivazioni/verifica/5
|
||||
[HttpPost("verifica/{id}")]
|
||||
public async Task<DB.DTO.AttivazioneDTO> VerificaImpiego(int id, [FromBody] string CodImpiego)
|
||||
{
|
||||
var result = await _DataService.AttivazioneSearch(id, CodImpiego, false);
|
||||
return result;
|
||||
@@ -67,17 +67,16 @@ namespace LiMan.APi.Controllers
|
||||
/// <summary>
|
||||
/// Richiesta attivazione di una lista di chiavi di licenza sub
|
||||
/// </summary>
|
||||
/// <param name="id">Idx licenza MASTER</param>
|
||||
/// <param name="ParamDict">Elenco codici impiego (key) + valori in formato dizionari</param>
|
||||
/// <param name="CurrRequest">Obj Richiesta con licenza MASTER + Elenco codici impiego (key) + valori in formato dizionari</param>
|
||||
// POST api/attivazioni
|
||||
[HttpPost]
|
||||
public async Task<List<DB.DTO.AttivazioneDTO>> Post(int id, [FromBody] Dictionary<string, string> ParamDict)
|
||||
public async Task<List<DB.DTO.AttivazioneDTO>> Post([FromBody] UserLicenseRequest CurrRequest)
|
||||
{
|
||||
List<DB.DTO.AttivazioneDTO> currData = new List<DB.DTO.AttivazioneDTO>();
|
||||
|
||||
// eseguo tentativo generazione attivazioni da licenza...
|
||||
bool done = await _DataService.AttivazioniTryAdd(id, ParamDict, 60);
|
||||
currData = await _DataService.AttivazioniByLic(id, false);
|
||||
bool done = await _DataService.AttivazioniTryAdd(CurrRequest.MasterKey, CurrRequest.ParamDict, 60);
|
||||
currData = await _DataService.AttivazioniByMasterKey(CurrRequest.MasterKey, false);
|
||||
|
||||
return currData;
|
||||
}
|
||||
|
||||
@@ -80,19 +80,19 @@ namespace LiMan.APi.Data
|
||||
/// <summary>
|
||||
/// Effettua registrazione (se possibile) delle licenze indicate dall'elenco codici di impiego indicati
|
||||
/// </summary>
|
||||
/// <param name="IdxLic"></param>
|
||||
/// <param name="MasterKey">Codice Licenza Master</param>
|
||||
/// <param name="ParamDict">Elenco codici impiego (key) + valori in formato dizionari</param>
|
||||
/// <param name="DayVeto">Numero giorni x scadenza veto modifica</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public async Task<bool> AttivazioniTryAdd(int IdxLic, Dictionary<string, string> ParamDict, int DayVeto)
|
||||
public async Task<bool> AttivazioniTryAdd(string MasterKey, Dictionary<string, string> ParamDict, int DayVeto)
|
||||
{
|
||||
bool taskDone = false;
|
||||
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
|
||||
taskDone = dbController.AttivazioniTryAdd(IdxLic, ParamDict, DayVeto);
|
||||
taskDone = dbController.AttivazioniTryAdd(MasterKey, ParamDict, DayVeto);
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Trace($"Effettuata scrittura + rilettura da DB per AttivazioniTryAdd: {ts.TotalMilliseconds} ms");
|
||||
@@ -101,9 +101,9 @@ namespace LiMan.APi.Data
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco Attivaizoni da licenza master
|
||||
/// Elenco Attivaizoni da ID Licenza master
|
||||
/// </summary>
|
||||
/// <param name="IdxLic">Codice Licenza Master</param>
|
||||
/// <param name="IdxLic">Idx Licenza Master</param>
|
||||
/// <param name="HideData">Indica se nascondere i dati sensibili</param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<DB.DTO.AttivazioneDTO>> AttivazioniByLic(int IdxLic, bool HideData)
|
||||
@@ -121,10 +121,35 @@ namespace LiMan.APi.Data
|
||||
return await Task.FromResult(dbResult);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco Attivaizoni da valore Licenza master
|
||||
/// </summary>
|
||||
/// <param name="MasterKey">Licenza Master</param>
|
||||
/// <param name="HideData">Indica se nascondere i dati sensibili</param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<DB.DTO.AttivazioneDTO>> AttivazioniByMasterKey(string MasterKey, bool HideData)
|
||||
{
|
||||
List<DB.DTO.AttivazioneDTO> dbResult = new List<DB.DTO.AttivazioneDTO>();
|
||||
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
|
||||
var licenza = dbController.GetLicenza(MasterKey);
|
||||
if (licenza != null)
|
||||
{
|
||||
dbResult = dbController.GetAttivazioniByLic(licenza.IdxLic, HideData);
|
||||
}
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Trace($"Effettuata lettura da DB per AttivazioniByLic: {ts.TotalMilliseconds} ms");
|
||||
|
||||
return await Task.FromResult(dbResult);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco licenze dato cliente
|
||||
/// </summary>
|
||||
/// <param name="IdxLic">Codice Licenza Master</param>
|
||||
/// <param name="IdxLic">ID Licenza Master</param>
|
||||
/// <param name="CodImpiego">Codice Impiego licenza</param>
|
||||
/// <param name="HideData">Indica se nascondere i dati sensibili</param>
|
||||
/// <returns></returns>
|
||||
@@ -135,7 +160,7 @@ namespace LiMan.APi.Data
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
|
||||
dbResult = dbController.GetAttivazione( IdxLic, CodImpiego, HideData);
|
||||
dbResult = dbController.GetAttivazione(IdxLic, CodImpiego, HideData);
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Trace($"Effettuata lettura da DB per AttivazioniSearch: {ts.TotalMilliseconds} ms");
|
||||
|
||||
+17
-11
@@ -59,24 +59,22 @@
|
||||
<summary>
|
||||
Recupero record di sub licenza (con chiavi anonimizzate)
|
||||
</summary>
|
||||
<param name="id">Idx licenza MASTER</param>
|
||||
<param name="CodImpiego">Codice univoco impiego licenza</param>
|
||||
<param name="id">ID Licenza MASTER</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:LiMan.APi.Controllers.AttivazioniController.VerificaImpiego(System.Int32,System.String)">
|
||||
<summary>
|
||||
Verifica recupero un record di sub licenza
|
||||
</summary>
|
||||
<param name="id">Idx licenza MASTER</param>
|
||||
<param name="id">ID Licenza MASTER</param>
|
||||
<param name="CodImpiego">Codice univoco impiego licenza</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:LiMan.APi.Controllers.AttivazioniController.Post(System.Int32,System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
<member name="M:LiMan.APi.Controllers.AttivazioniController.Post(Core.UserLicenseRequest)">
|
||||
<summary>
|
||||
Richiesta attivazione di una lista di chiavi di licenza sub
|
||||
</summary>
|
||||
<param name="id">Idx licenza MASTER</param>
|
||||
<param name="ParamDict">Elenco codici impiego (key) + valori in formato dizionari</param>
|
||||
<param name="CurrRequest">Obj Richiesta con licenza MASTER + Elenco codici impiego (key) + valori in formato dizionari</param>
|
||||
</member>
|
||||
<member name="T:LiMan.APi.Controllers.InstallazioniController">
|
||||
<summary>
|
||||
@@ -159,11 +157,11 @@
|
||||
<param name="HideData">Indica se nascondere i dati sensibili</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniTryAdd(System.Int32,System.Collections.Generic.Dictionary{System.String,System.String},System.Int32)">
|
||||
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniTryAdd(System.String,System.Collections.Generic.Dictionary{System.String,System.String},System.Int32)">
|
||||
<summary>
|
||||
Effettua registrazione (se possibile) delle licenze indicate dall'elenco codici di impiego indicati
|
||||
</summary>
|
||||
<param name="IdxLic"></param>
|
||||
<param name="MasterKey">Codice Licenza Master</param>
|
||||
<param name="ParamDict">Elenco codici impiego (key) + valori in formato dizionari</param>
|
||||
<param name="DayVeto">Numero giorni x scadenza veto modifica</param>
|
||||
<returns></returns>
|
||||
@@ -171,9 +169,17 @@
|
||||
</member>
|
||||
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniByLic(System.Int32,System.Boolean)">
|
||||
<summary>
|
||||
Elenco Attivaizoni da licenza master
|
||||
Elenco Attivaizoni da ID Licenza master
|
||||
</summary>
|
||||
<param name="IdxLic">Codice Licenza Master</param>
|
||||
<param name="IdxLic">Idx Licenza Master</param>
|
||||
<param name="HideData">Indica se nascondere i dati sensibili</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniByMasterKey(System.String,System.Boolean)">
|
||||
<summary>
|
||||
Elenco Attivaizoni da valore Licenza master
|
||||
</summary>
|
||||
<param name="MasterKey">Licenza Master</param>
|
||||
<param name="HideData">Indica se nascondere i dati sensibili</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
@@ -181,7 +187,7 @@
|
||||
<summary>
|
||||
Elenco licenze dato cliente
|
||||
</summary>
|
||||
<param name="IdxLic">Codice Licenza Master</param>
|
||||
<param name="IdxLic">ID Licenza Master</param>
|
||||
<param name="CodImpiego">Codice Impiego licenza</param>
|
||||
<param name="HideData">Indica se nascondere i dati sensibili</param>
|
||||
<returns></returns>
|
||||
|
||||
@@ -55,6 +55,11 @@ namespace LiMan.DB.Controllers
|
||||
//Log.Info("Dispose di GWMSController");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero da DB le attivazioni richieste
|
||||
/// </summary>
|
||||
/// <param name="IdxLic">Idx Licenza</param>
|
||||
/// <param name="hideData">Indica se generare rand parametri sensibili</param>
|
||||
public List<AttivazioneDTO> GetAttivazioniByLic(int IdxLic, bool hideData)
|
||||
{
|
||||
List<AttivazioneDTO> dbResult = new List<AttivazioneDTO>();
|
||||
@@ -120,49 +125,51 @@ namespace LiMan.DB.Controllers
|
||||
/// <summary>
|
||||
/// Cerca di aggiungere sul DB le attivazioni richieste
|
||||
/// </summary>
|
||||
/// <param name="idxLic">Idx Master Lic</param>
|
||||
/// <param name="MasterKey">Master Lic</param>
|
||||
/// <param name="ParamDict">Elenco codici impiego (key) + valori in formato dizionari</param>
|
||||
/// <param name="numDayVeto">num gg di veto da impostare</param>
|
||||
/// <returns></returns>
|
||||
public bool AttivazioniTryAdd(int idxLic, Dictionary<string, string> ParamDict, int numDayVeto)
|
||||
public bool AttivazioniTryAdd(string MasterKey, Dictionary<string, string> ParamDict, int numDayVeto)
|
||||
{
|
||||
bool answ = false;
|
||||
|
||||
// verifica se si può procedere...
|
||||
var licenza = GetLicenza(idxLic);
|
||||
var attivList = GetAttivazioniByLic(idxLic, false);
|
||||
if (licenza.IsValid && (licenza.NumLicenze >= (attivList.Count + ParamDict.Count)))
|
||||
var licenza = GetLicenza(MasterKey);
|
||||
if (licenza != null)
|
||||
{
|
||||
DateTime vetoDate = DateTime.Today.AddDays(numDayVeto);
|
||||
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
|
||||
var attivList = GetAttivazioniByLic(licenza.IdxLic, false);
|
||||
if (licenza.IsValid && (licenza.NumLicenze >= (attivList.Count + ParamDict.Count)))
|
||||
{
|
||||
try
|
||||
DateTime vetoDate = DateTime.Today.AddDays(numDayVeto);
|
||||
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
|
||||
{
|
||||
// genero subLicenze...
|
||||
var newRec = ParamDict
|
||||
.Select(x => new SubLicenzaModel()
|
||||
{
|
||||
IdxLic = idxLic,
|
||||
CodImpiego = x.Key,
|
||||
VetoUnlock = vetoDate,
|
||||
Tipo = Enum.TipoLicenza.UserKey,
|
||||
Chiave = x.Value
|
||||
})
|
||||
.ToList();
|
||||
localDbCtx
|
||||
.DbSetSubLicenze
|
||||
.AddRange(newRec);
|
||||
try
|
||||
{
|
||||
// genero subLicenze...
|
||||
var newRec = ParamDict
|
||||
.Select(x => new SubLicenzaModel()
|
||||
{
|
||||
IdxLic = licenza.IdxLic,
|
||||
CodImpiego = x.Key,
|
||||
VetoUnlock = vetoDate,
|
||||
Tipo = Enum.TipoLicenza.UserKey,
|
||||
Chiave = x.Value
|
||||
})
|
||||
.ToList();
|
||||
localDbCtx
|
||||
.DbSetSubLicenze
|
||||
.AddRange(newRec);
|
||||
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
catch(Exception exc)
|
||||
{
|
||||
Log.Error($"Errore in AttivazioniTryAdd per IdxLic {idxLic} | #rec: {ParamDict.Count}{Environment.NewLine}{exc}");
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Errore in AttivazioniTryAdd per MasterKey {MasterKey} | #rec: {ParamDict.Count}{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
@@ -363,6 +370,18 @@ namespace LiMan.DB.Controllers
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
public LicenzaModel GetLicenza(string MasterKey)
|
||||
{
|
||||
LicenzaModel dbResult = new LicenzaModel();
|
||||
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
|
||||
{
|
||||
dbResult = localDbCtx
|
||||
.DbSetLicenze
|
||||
.Where(x => x.Chiave == MasterKey)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public List<LicenzaModel> GetLicenze()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user