Refresh metodi delete

This commit is contained in:
Samuele Locatelli
2021-11-08 12:49:22 +01:00
parent 0f8913df12
commit 261dbe0214
10 changed files with 296 additions and 273 deletions
+48 -35
View File
@@ -17,15 +17,16 @@ namespace LiMan.APi.Controllers
[ApiController]
public class AttivazioniController : ControllerBase
{
#region Private Fields
/// <summary>
/// Classe per logging
/// </summary>
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Dataservice x accesso DB
/// </summary>
protected ApiDataService _DataService { get; set; }
#endregion Private Fields
#region Public Constructors
/// <summary>
/// Init generico
@@ -37,6 +38,30 @@ namespace LiMan.APi.Controllers
Log.Info("Avviata classe AttivazioniController");
}
#endregion Public Constructors
#region Protected Properties
/// <summary>
/// Dataservice x accesso DB
/// </summary>
protected ApiDataService _DataService { get; set; }
#endregion Protected Properties
#region Public Methods
/// <summary>
/// Eliminazione di un set di attivazioni (SE SCADUTE)
/// </summary>
// DELETE api/attivazioni
[HttpDelete()]
public async Task<bool> Delete([FromBody] UserLicenseRequest CurrRequest)
{
bool done = await _DataService.AttivazioniDelete(CurrRequest.MasterKey, CurrRequest.ParamDict);
return done;
}
/// <summary>
/// Recupero record di sub licenza (con chiavi anonimizzate)
/// </summary>
@@ -52,22 +77,6 @@ namespace LiMan.APi.Controllers
return result;
}
/// <summary>
/// Verifica recupero un record di sub licenza
/// </summary>
/// <param name="chiave">Licenza MASTER</param>
/// <param name="CodImpiego">Codice univoco impiego licenza</param>
/// <returns></returns>
// GET api/attivazioni/verifica/5
[HttpGet("verifica")]
public async Task<DB.DTO.AttivazioneDTO> VerificaImpiego(string chiave, string CodImpiego)
{
DB.DTO.AttivazioneDTO result = new DB.DTO.AttivazioneDTO();
var dbResult = await _DataService.AttivazioneSearch(chiave, CodImpiego, false);
result = (dbResult != null) ? dbResult : result;
return result;
}
/// <summary>
/// Richiesta attivazione di una lista di chiavi di licenza sub
/// </summary>
@@ -85,19 +94,6 @@ namespace LiMan.APi.Controllers
return currData;
}
/// <summary>
/// Eliminazione di un attivazione (SE SCADUTA)
/// </summary>
/// <param name="id">Id della licenza SUB da eliminare</param>
/// <param name="chiave">Licenza MASTER</param>
// DELETE api/attivazioni/5
[HttpDelete("{id}")]
public async Task<bool> Delete(int id, string chiave)
{
bool done = await _DataService.AttivazioniDelete(chiave, id);
return done;
}
/// <summary>
/// Eliminazione di TUTTE le attivazioni SCADUTE
/// </summary>
@@ -110,14 +106,31 @@ namespace LiMan.APi.Controllers
return done;
}
/// <summary>
/// Verifica recupero un record di sub licenza
/// </summary>
/// <param name="chiave">Licenza MASTER</param>
/// <param name="CodImpiego">Codice univoco impiego licenza</param>
/// <returns></returns>
// GET api/attivazioni/verifica/5
[HttpGet("verifica")]
public async Task<DB.DTO.AttivazioneDTO> VerificaImpiego(string chiave, string CodImpiego)
{
DB.DTO.AttivazioneDTO result = new DB.DTO.AttivazioneDTO();
var dbResult = await _DataService.AttivazioneSearch(chiave, CodImpiego, false);
result = (dbResult != null) ? dbResult : result;
return result;
}
#endregion Public Methods
#if false
// PUT api/attivazioni/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
}
#endif
}
}
}
+37 -36
View File
@@ -77,27 +77,27 @@ namespace LiMan.APi.Data
return await Task.FromResult(dbResult);
}
/// <summary>
/// Effettua registrazione (se possibile) delle licenze indicate dall'elenco codici di impiego indicati
/// Elenco licenze dato cliente
/// </summary>
/// <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>
/// <param name="Chiave">Licenza MASTER</param>
/// <param name="CodImpiego">Codice Impiego licenza</param>
/// <param name="HideData">Indica se nascondere i dati sensibili</param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<bool> AttivazioniTryAdd(string MasterKey, Dictionary<string, string> ParamDict, int DayVeto)
public async Task<DB.DTO.AttivazioneDTO> AttivazioneSearch(string Chiave, string CodImpiego, bool HideData)
{
bool taskDone = false;
DB.DTO.AttivazioneDTO dbResult = new DB.DTO.AttivazioneDTO();
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
taskDone = dbController.AttivazioniTryAdd(MasterKey, ParamDict, DayVeto);
dbResult = dbController.GetAttivazione(Chiave, CodImpiego, HideData);
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Trace($"Effettuata scrittura + rilettura da DB per AttivazioniTryAdd: {ts.TotalMilliseconds} ms");
Log.Trace($"Effettuata lettura da DB per AttivazioniSearch: {ts.TotalMilliseconds} ms");
return await Task.FromResult(taskDone);
return await Task.FromResult(dbResult);
}
/// <summary>
@@ -146,35 +146,13 @@ namespace LiMan.APi.Data
return await Task.FromResult(dbResult);
}
/// <summary>
/// Elenco licenze dato cliente
/// </summary>
/// <param name="Chiave">Licenza MASTER</param>
/// <param name="CodImpiego">Codice Impiego licenza</param>
/// <param name="HideData">Indica se nascondere i dati sensibili</param>
/// <returns></returns>
public async Task<DB.DTO.AttivazioneDTO> AttivazioneSearch(string Chiave, string CodImpiego, bool HideData)
{
DB.DTO.AttivazioneDTO dbResult = new DB.DTO.AttivazioneDTO();
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
dbResult = dbController.GetAttivazione(Chiave, CodImpiego, HideData);
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Trace($"Effettuata lettura da DB per AttivazioniSearch: {ts.TotalMilliseconds} ms");
return await Task.FromResult(dbResult);
}
/// <summary>
/// Elimina un Attivaizone
/// </summary>
/// <param name="MasterKey">Licenza Master</param>
/// <param name="IdxSubLic">ID della sub licenza da eliminare</param>
/// <param name="ParamDict">Elenco delle attivazioni da eliminare</param>
/// <returns></returns>
public async Task<bool> AttivazioniDelete(string MasterKey, int IdxSubLic)
public async Task<bool> AttivazioniDelete(string MasterKey, Dictionary<string, string> ParamDict)
{
bool answ = false;
@@ -184,7 +162,7 @@ namespace LiMan.APi.Data
var licenza = dbController.GetLicenza(MasterKey);
if (licenza != null)
{
answ = dbController.AttivazioniDelete(IdxSubLic, MasterKey);
answ = dbController.AttivazioniDelete(ParamDict, MasterKey);
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
@@ -192,6 +170,7 @@ namespace LiMan.APi.Data
return await Task.FromResult(answ);
}
/// <summary>
/// Elimina attivaizoni con veto scaduto
/// </summary>
@@ -215,7 +194,29 @@ namespace LiMan.APi.Data
return await Task.FromResult(answ);
}
/// <summary>
/// Effettua registrazione (se possibile) delle licenze indicate dall'elenco codici di impiego indicati
/// </summary>
/// <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(string MasterKey, Dictionary<string, string> ParamDict, int DayVeto)
{
bool taskDone = false;
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
taskDone = dbController.AttivazioniTryAdd(MasterKey, ParamDict, DayVeto);
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Trace($"Effettuata scrittura + rilettura da DB per AttivazioniTryAdd: {ts.TotalMilliseconds} ms");
return await Task.FromResult(taskDone);
}
/// <summary>
/// Dispose classe
+39 -41
View File
@@ -44,17 +44,22 @@
Classe per logging
</summary>
</member>
<member name="P:LiMan.APi.Controllers.AttivazioniController._DataService">
<summary>
Dataservice x accesso DB
</summary>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.#ctor(LiMan.APi.Data.ApiDataService)">
<summary>
Init generico
</summary>
<param name="DataService"></param>
</member>
<member name="P:LiMan.APi.Controllers.AttivazioniController._DataService">
<summary>
Dataservice x accesso DB
</summary>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.Delete(Core.UserLicenseRequest)">
<summary>
Eliminazione di un set di attivazioni (SE SCADUTE)
</summary>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.Get(System.String)">
<summary>
Recupero record di sub licenza (con chiavi anonimizzate)
@@ -62,6 +67,18 @@
<param name="chiave">Licenza MASTER</param>
<returns></returns>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.Post(Core.UserLicenseRequest)">
<summary>
Richiesta attivazione di una lista di chiavi di licenza sub
</summary>
<param name="CurrRequest">Obj Richiesta con licenza MASTER + Elenco codici impiego (key) + valori in formato dizionari</param>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.ResetAvail(System.String)">
<summary>
Eliminazione di TUTTE le attivazioni SCADUTE
</summary>
<param name="chiave">Licenza MASTER</param>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.VerificaImpiego(System.String,System.String)">
<summary>
Verifica recupero un record di sub licenza
@@ -70,25 +87,6 @@
<param name="CodImpiego">Codice univoco impiego licenza</param>
<returns></returns>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.Post(Core.UserLicenseRequest)">
<summary>
Richiesta attivazione di una lista di chiavi di licenza sub
</summary>
<param name="CurrRequest">Obj Richiesta con licenza MASTER + Elenco codici impiego (key) + valori in formato dizionari</param>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.Delete(System.Int32,System.String)">
<summary>
Eliminazione di un attivazione (SE SCADUTA)
</summary>
<param name="id">Id della licenza SUB da eliminare</param>
<param name="chiave">Licenza MASTER</param>
</member>
<member name="M:LiMan.APi.Controllers.AttivazioniController.ResetAvail(System.String)">
<summary>
Eliminazione di TUTTE le attivazioni SCADUTE
</summary>
<param name="chiave">Licenza MASTER</param>
</member>
<member name="T:LiMan.APi.Controllers.InstallazioniController">
<summary>
Controller livello INSTALLAZIONI
@@ -170,15 +168,14 @@
<param name="HideData">Indica se nascondere i dati sensibili</param>
<returns></returns>
</member>
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniTryAdd(System.String,System.Collections.Generic.Dictionary{System.String,System.String},System.Int32)">
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioneSearch(System.String,System.String,System.Boolean)">
<summary>
Effettua registrazione (se possibile) delle licenze indicate dall'elenco codici di impiego indicati
Elenco licenze dato cliente
</summary>
<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>
<param name="Chiave">Licenza MASTER</param>
<param name="CodImpiego">Codice Impiego licenza</param>
<param name="HideData">Indica se nascondere i dati sensibili</param>
<returns></returns>
<exception cref="T:System.NotImplementedException"></exception>
</member>
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniByLic(System.Int32,System.Boolean)">
<summary>
@@ -196,21 +193,12 @@
<param name="HideData">Indica se nascondere i dati sensibili</param>
<returns></returns>
</member>
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioneSearch(System.String,System.String,System.Boolean)">
<summary>
Elenco licenze dato cliente
</summary>
<param name="Chiave">Licenza MASTER</param>
<param name="CodImpiego">Codice Impiego licenza</param>
<param name="HideData">Indica se nascondere i dati sensibili</param>
<returns></returns>
</member>
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniDelete(System.String,System.Int32)">
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniDelete(System.String,System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
Elimina un Attivaizone
</summary>
<param name="MasterKey">Licenza Master</param>
<param name="IdxSubLic">ID della sub licenza da eliminare</param>
<param name="ParamDict">Elenco delle attivazioni da eliminare</param>
<returns></returns>
</member>
<member name="M:LiMan.APi.Data.ApiDataService.AttivazioniResetAvail(System.String)">
@@ -220,6 +208,16 @@
<param name="MasterKey">Licenza Master</param>
<returns></returns>
</member>
<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="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="T:System.NotImplementedException"></exception>
</member>
<member name="M:LiMan.APi.Data.ApiDataService.Dispose">
<summary>
Dispose classe
@@ -7,6 +7,6 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<PropertyGroup>
<TimeStampOfAssociatedLegacyPublishXmlFile />
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAk75miMJLMkCTEelQutKpbwAAAAACAAAAAAADZgAAwAAAABAAAAA7RC2yFYQ+sbph7Gm3hrEMAAAAAASAAACgAAAAEAAAAFhL9j1HkRjMaqEESfncpZcYAAAAIMz57CMDX9ZLAPLwms1/yHQTf/r/v74FFAAAAB6WaNF8er6HZmelU4da+AsQFSC5</EncryptedPassword>
<History>True|2021-11-06T10:19:02.9085307Z;True|2021-11-06T11:18:28.0387848+01:00;True|2021-11-06T09:53:17.1717596+01:00;True|2021-10-21T17:47:07.5800856+02:00;True|2021-10-21T17:45:53.9877689+02:00;True|2021-10-21T17:45:26.3424924+02:00;True|2021-10-21T17:44:04.8901686+02:00;True|2021-10-21T17:12:38.0143120+02:00;True|2021-10-21T12:48:27.8969428+02:00;True|2021-10-21T12:45:17.7896250+02:00;True|2021-10-21T12:44:18.8941191+02:00;True|2021-10-21T08:48:23.1235907+02:00;True|2021-10-21T08:48:18.3291685+02:00;True|2021-10-15T11:33:23.1161895+02:00;True|2021-10-15T11:26:37.7646366+02:00;True|2021-10-15T11:26:08.9411561+02:00;True|2021-10-15T11:25:36.6377010+02:00;True|2021-10-15T11:25:15.7375383+02:00;True|2021-10-15T11:20:26.4607123+02:00;True|2021-10-15T11:13:33.8524245+02:00;False|2021-10-15T10:30:42.4253422+02:00;False|2021-10-15T10:27:43.8339493+02:00;False|2021-10-15T10:23:05.0864739+02:00;False|2021-10-15T10:22:43.2958457+02:00;False|2021-10-15T10:22:15.0954116+02:00;True|2021-10-15T10:15:10.5127570+02:00;False|2021-10-15T10:13:53.0299219+02:00;False|2021-10-15T08:58:38.3028788+02:00;False|2021-10-15T08:47:48.5789826+02:00;False|2021-10-14T19:32:56.5281204+02:00;False|2021-10-14T19:31:10.1629370+02:00;True|2021-05-26T19:49:30.0427896+02:00;False|2021-05-26T19:49:14.9065510+02:00;True|2021-05-25T17:48:33.3901785+02:00;True|2021-05-25T17:46:09.2063020+02:00;True|2021-05-25T17:42:47.8167539+02:00;True|2021-05-25T17:22:03.1877438+02:00;True|2021-05-25T17:21:05.1565775+02:00;True|2021-05-25T16:26:34.1426996+02:00;True|2021-05-25T16:14:28.2842402+02:00;True|2021-05-25T15:02:11.7131495+02:00;</History>
<History>True|2021-11-08T11:34:27.5881363Z;True|2021-11-08T12:34:19.3151235+01:00;True|2021-11-06T11:19:02.9085307+01:00;True|2021-11-06T11:18:28.0387848+01:00;True|2021-11-06T09:53:17.1717596+01:00;True|2021-10-21T17:47:07.5800856+02:00;True|2021-10-21T17:45:53.9877689+02:00;True|2021-10-21T17:45:26.3424924+02:00;True|2021-10-21T17:44:04.8901686+02:00;True|2021-10-21T17:12:38.0143120+02:00;True|2021-10-21T12:48:27.8969428+02:00;True|2021-10-21T12:45:17.7896250+02:00;True|2021-10-21T12:44:18.8941191+02:00;True|2021-10-21T08:48:23.1235907+02:00;True|2021-10-21T08:48:18.3291685+02:00;True|2021-10-15T11:33:23.1161895+02:00;True|2021-10-15T11:26:37.7646366+02:00;True|2021-10-15T11:26:08.9411561+02:00;True|2021-10-15T11:25:36.6377010+02:00;True|2021-10-15T11:25:15.7375383+02:00;True|2021-10-15T11:20:26.4607123+02:00;True|2021-10-15T11:13:33.8524245+02:00;False|2021-10-15T10:30:42.4253422+02:00;False|2021-10-15T10:27:43.8339493+02:00;False|2021-10-15T10:23:05.0864739+02:00;False|2021-10-15T10:22:43.2958457+02:00;False|2021-10-15T10:22:15.0954116+02:00;True|2021-10-15T10:15:10.5127570+02:00;False|2021-10-15T10:13:53.0299219+02:00;False|2021-10-15T08:58:38.3028788+02:00;False|2021-10-15T08:47:48.5789826+02:00;False|2021-10-14T19:32:56.5281204+02:00;False|2021-10-14T19:31:10.1629370+02:00;True|2021-05-26T19:49:30.0427896+02:00;False|2021-05-26T19:49:14.9065510+02:00;True|2021-05-25T17:48:33.3901785+02:00;True|2021-05-25T17:46:09.2063020+02:00;True|2021-05-25T17:42:47.8167539+02:00;True|2021-05-25T17:22:03.1877438+02:00;True|2021-05-25T17:21:05.1565775+02:00;True|2021-05-25T16:26:34.1426996+02:00;True|2021-05-25T16:14:28.2842402+02:00;True|2021-05-25T15:02:11.7131495+02:00;</History>
</PropertyGroup>
</Project>
@@ -7,6 +7,6 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<PropertyGroup>
<TimeStampOfAssociatedLegacyPublishXmlFile />
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAk75miMJLMkCTEelQutKpbwAAAAACAAAAAAADZgAAwAAAABAAAAA7RC2yFYQ+sbph7Gm3hrEMAAAAAASAAACgAAAAEAAAAFhL9j1HkRjMaqEESfncpZcYAAAAIMz57CMDX9ZLAPLwms1/yHQTf/r/v74FFAAAAB6WaNF8er6HZmelU4da+AsQFSC5</EncryptedPassword>
<History>True|2021-11-06T10:18:52.0560366Z;True|2021-11-06T11:18:39.5514277+01:00;True|2021-10-21T17:10:41.5356616+02:00;True|2021-10-21T17:09:53.6684540+02:00;True|2021-10-21T12:51:53.0071793+02:00;True|2021-10-21T12:50:27.0123409+02:00;True|2021-10-21T08:48:42.2014540+02:00;True|2021-10-21T08:48:38.0576948+02:00;True|2021-10-21T08:48:31.5097766+02:00;True|2021-10-15T10:15:10.5127570+02:00;False|2021-10-15T10:13:53.0299219+02:00;False|2021-10-15T08:58:38.3028788+02:00;False|2021-10-15T08:47:48.5789826+02:00;False|2021-10-14T19:32:56.5281204+02:00;False|2021-10-14T19:31:10.1629370+02:00;True|2021-05-26T19:49:30.0427896+02:00;False|2021-05-26T19:49:14.9065510+02:00;True|2021-05-25T17:48:33.3901785+02:00;True|2021-05-25T17:46:09.2063020+02:00;True|2021-05-25T17:42:47.8167539+02:00;True|2021-05-25T17:22:03.1877438+02:00;True|2021-05-25T17:21:05.1565775+02:00;True|2021-05-25T16:26:34.1426996+02:00;True|2021-05-25T16:14:28.2842402+02:00;True|2021-05-25T15:02:11.7131495+02:00;</History>
<History>True|2021-11-08T11:35:03.8241794Z;True|2021-11-08T12:34:36.4622795+01:00;True|2021-11-06T11:18:52.0560366+01:00;True|2021-11-06T11:18:39.5514277+01:00;True|2021-10-21T17:10:41.5356616+02:00;True|2021-10-21T17:09:53.6684540+02:00;True|2021-10-21T12:51:53.0071793+02:00;True|2021-10-21T12:50:27.0123409+02:00;True|2021-10-21T08:48:42.2014540+02:00;True|2021-10-21T08:48:38.0576948+02:00;True|2021-10-21T08:48:31.5097766+02:00;True|2021-10-15T10:15:10.5127570+02:00;False|2021-10-15T10:13:53.0299219+02:00;False|2021-10-15T08:58:38.3028788+02:00;False|2021-10-15T08:47:48.5789826+02:00;False|2021-10-14T19:32:56.5281204+02:00;False|2021-10-14T19:31:10.1629370+02:00;True|2021-05-26T19:49:30.0427896+02:00;False|2021-05-26T19:49:14.9065510+02:00;True|2021-05-25T17:48:33.3901785+02:00;True|2021-05-25T17:46:09.2063020+02:00;True|2021-05-25T17:42:47.8167539+02:00;True|2021-05-25T17:22:03.1877438+02:00;True|2021-05-25T17:21:05.1565775+02:00;True|2021-05-25T16:26:34.1426996+02:00;True|2021-05-25T16:14:28.2842402+02:00;True|2021-05-25T15:02:11.7131495+02:00;</History>
</PropertyGroup>
</Project>
+166 -155
View File
@@ -31,122 +31,40 @@ namespace LiMan.DB.Controllers
#region Public Methods
public bool DbForceMigrate()
{
bool answ = false;
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
{
try
{
localDbCtx.DbForceMigrate();
answ = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione in DbForceMigrate");
}
}
return answ;
}
public void Dispose()
{
// Clear database context
//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>();
LicenzaModel mainLic = new LicenzaModel();
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
{
DateTime oggi = DateTime.Today;
int stdIdxLic = 0;
// generazione stringhe casuali....
// https://jonathancrozier.com/blog/how-to-generate-a-random-string-with-c-sharp
StringBuilder sbRandChiave = new StringBuilder();
string stdChiave = "";
if (hideData)
{
int numChar = 80;
Random random = new Random();
// idxLic
stdIdxLic = random.Next(50000, 100000);
// chiave random
for (int i = 0; i < numChar; i++)
{
// Generate floating point numbers
double myFloat = random.NextDouble();
// Generate the char using below logic
var myChar = Convert.ToChar(Convert.ToInt32(Math.Floor(25 * myFloat) + 65));
sbRandChiave.Append(myChar);
}
stdChiave = $"{sbRandChiave}";
}
else
{
// recupero se c'è licenza master
mainLic = localDbCtx
.DbSetLicenze
.Where(x => x.IdxLic == IdxLic)
.FirstOrDefault();
}
// calcolo DTO Attivazione
dbResult = localDbCtx
.DbSetSubLicenze
.Where(x => x.IdxLic == IdxLic)
.Select(x => new AttivazioneDTO()
{
IdxLic = hideData ? stdIdxLic : x.IdxLic,
IdxSubLic = x.IdxSubLic,
CodImpiego = x.CodImpiego,
CodApp = mainLic.CodApp,
CodInst = mainLic.CodInst,
Descrizione = mainLic.Descrizione,
Tipo = x.Tipo,
Chiave = hideData ? stdChiave : x.Chiave,
VetoUnlock = x.VetoUnlock
})
.ToList();
}
return dbResult;
}
/// <summary>
/// Elimino una licenza da quelle attivate (SE scaduto veto)
/// </summary>
/// <param name="IdxSubLic">Idx Licenza</param>
/// <param name="ParamDict">Dizionario delle Licenze da eliminare</param>
/// <param name="MasterKey">Chiave Master</param>
public bool AttivazioniDelete(int IdxSubLic, string MasterKey)
public bool AttivazioniDelete(Dictionary<string, string> ParamDict, string MasterKey)
{
bool fatto = false;
LicenzaModel mainLic = new LicenzaModel();
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
{
DateTime oggi = DateTime.Today;
List<SubLicenzaModel> items2del = new List<SubLicenzaModel>();
// ciclo x ogni licenze a vedere SE sia eliminabile...
foreach (var item in ParamDict)
{
// calcolo DTO Attivazione
var itemsTgt = localDbCtx
.DbSetSubLicenze
.Where(x => x.CodImpiego == item.Key && x.Chiave == item.Value && x.LicenzaNav.Chiave == MasterKey && x.VetoUnlock < oggi)
.ToList();
// se trovate aggiungo ad elenco...
if (itemsTgt != null && itemsTgt.Count > 0)
{
items2del.AddRange(itemsTgt);
}
}
// calcolo DTO Attivazione
var item2Del = localDbCtx
.DbSetSubLicenze
.Where(x => x.IdxSubLic == IdxSubLic && x.LicenzaNav.Chiave == MasterKey && x.VetoUnlock < oggi)
.ToList();
// se ho qualcosa procedo...
if (item2Del != null && item2Del.Count > 0)
if (items2del != null && items2del.Count > 0)
{
localDbCtx
.DbSetSubLicenze
.RemoveRange(item2Del);
.RemoveRange(items2del);
// salvo
localDbCtx.SaveChanges();
fatto = true;
@@ -238,68 +156,28 @@ namespace LiMan.DB.Controllers
return answ;
}
public AttivazioneDTO GetAttivazione(string Chiave, string CodImpiego, bool hideData)
public bool DbForceMigrate()
{
AttivazioneDTO dbResult = new AttivazioneDTO();
LicenzaModel mainLic = new LicenzaModel();
bool answ = false;
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
{
DateTime oggi = DateTime.Today;
int stdIdxLic = 0;
// generazione stringhe casuali....
// https://jonathancrozier.com/blog/how-to-generate-a-random-string-with-c-sharp
StringBuilder sbRandChiave = new StringBuilder();
string stdChiave = "";
if (hideData)
try
{
int numChar = 80;
Random random = new Random();
// idxLic
stdIdxLic = random.Next(50000, 100000);
// chiave random
for (int i = 0; i < numChar; i++)
{
// Generate floating point numbers
double myFloat = random.NextDouble();
// Generate the char using below logic
var myChar = Convert.ToChar(Convert.ToInt32(Math.Floor(25 * myFloat) + 65));
sbRandChiave.Append(myChar);
}
stdChiave = $"{sbRandChiave}";
localDbCtx.DbForceMigrate();
answ = true;
}
else
catch (Exception exc)
{
// recupero se c'è licenza master
mainLic = localDbCtx
.DbSetLicenze
.Where(x => x.Chiave == Chiave)
.FirstOrDefault();
Log.Error($"Eccezione in DbForceMigrate");
}
// calcolo DTO applicativi
dbResult = localDbCtx
.DbSetSubLicenze
.Where(x => x.LicenzaNav.Chiave == Chiave && x.CodImpiego == CodImpiego)
.OrderBy(o => o.VetoUnlock)
.Select(x => new AttivazioneDTO()
{
IdxLic = hideData ? stdIdxLic : x.IdxLic,
IdxSubLic = x.IdxSubLic,
CodImpiego = x.CodImpiego,
CodApp = mainLic.CodApp,
CodInst = mainLic.CodInst,
Descrizione = mainLic.Descrizione,
Tipo = x.Tipo,
Chiave = hideData ? stdChiave : x.Chiave,
VetoUnlock = x.VetoUnlock
})
.FirstOrDefault();
}
return dbResult;
return answ;
}
public void Dispose()
{
// Clear database context
//Log.Info("Dispose di GWMSController");
}
public List<ApplicativoDTO> GetApplicativiFilt(bool OnlyActive, string CodApp, string CodInst, bool hideData)
@@ -411,6 +289,138 @@ namespace LiMan.DB.Controllers
return dbResult;
}
public AttivazioneDTO GetAttivazione(string Chiave, string CodImpiego, bool hideData)
{
AttivazioneDTO dbResult = new AttivazioneDTO();
LicenzaModel mainLic = new LicenzaModel();
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
{
DateTime oggi = DateTime.Today;
int stdIdxLic = 0;
// generazione stringhe casuali....
// https://jonathancrozier.com/blog/how-to-generate-a-random-string-with-c-sharp
StringBuilder sbRandChiave = new StringBuilder();
string stdChiave = "";
if (hideData)
{
int numChar = 80;
Random random = new Random();
// idxLic
stdIdxLic = random.Next(50000, 100000);
// chiave random
for (int i = 0; i < numChar; i++)
{
// Generate floating point numbers
double myFloat = random.NextDouble();
// Generate the char using below logic
var myChar = Convert.ToChar(Convert.ToInt32(Math.Floor(25 * myFloat) + 65));
sbRandChiave.Append(myChar);
}
stdChiave = $"{sbRandChiave}";
}
else
{
// recupero se c'è licenza master
mainLic = localDbCtx
.DbSetLicenze
.Where(x => x.Chiave == Chiave)
.FirstOrDefault();
}
// calcolo DTO applicativi
dbResult = localDbCtx
.DbSetSubLicenze
.Where(x => x.LicenzaNav.Chiave == Chiave && x.CodImpiego == CodImpiego)
.OrderBy(o => o.VetoUnlock)
.Select(x => new AttivazioneDTO()
{
IdxLic = hideData ? stdIdxLic : x.IdxLic,
IdxSubLic = x.IdxSubLic,
CodImpiego = x.CodImpiego,
CodApp = mainLic.CodApp,
CodInst = mainLic.CodInst,
Descrizione = mainLic.Descrizione,
Tipo = x.Tipo,
Chiave = hideData ? stdChiave : x.Chiave,
VetoUnlock = x.VetoUnlock
})
.FirstOrDefault();
}
return dbResult;
}
/// <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>();
LicenzaModel mainLic = new LicenzaModel();
using (LMDbContext localDbCtx = new LMDbContext(_configuration))
{
DateTime oggi = DateTime.Today;
int stdIdxLic = 0;
// generazione stringhe casuali....
// https://jonathancrozier.com/blog/how-to-generate-a-random-string-with-c-sharp
StringBuilder sbRandChiave = new StringBuilder();
string stdChiave = "";
if (hideData)
{
int numChar = 80;
Random random = new Random();
// idxLic
stdIdxLic = random.Next(50000, 100000);
// chiave random
for (int i = 0; i < numChar; i++)
{
// Generate floating point numbers
double myFloat = random.NextDouble();
// Generate the char using below logic
var myChar = Convert.ToChar(Convert.ToInt32(Math.Floor(25 * myFloat) + 65));
sbRandChiave.Append(myChar);
}
stdChiave = $"{sbRandChiave}";
}
else
{
// recupero se c'è licenza master
mainLic = localDbCtx
.DbSetLicenze
.Where(x => x.IdxLic == IdxLic)
.FirstOrDefault();
}
// calcolo DTO Attivazione
dbResult = localDbCtx
.DbSetSubLicenze
.Where(x => x.IdxLic == IdxLic)
.Select(x => new AttivazioneDTO()
{
IdxLic = hideData ? stdIdxLic : x.IdxLic,
IdxSubLic = x.IdxSubLic,
CodImpiego = x.CodImpiego,
CodApp = mainLic.CodApp,
CodInst = mainLic.CodInst,
Descrizione = mainLic.Descrizione,
Tipo = x.Tipo,
Chiave = hideData ? stdChiave : x.Chiave,
VetoUnlock = x.VetoUnlock
})
.ToList();
}
return dbResult;
}
public List<InstallazioneModel> GetInstallazioni()
{
List<InstallazioneModel> dbResult = new List<InstallazioneModel>();
@@ -435,6 +445,7 @@ namespace LiMan.DB.Controllers
}
return dbResult;
}
public LicenzaModel GetLicenza(string MasterKey)
{
LicenzaModel dbResult = new LicenzaModel();
+1 -1
View File
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<Version>1.1.2111.0612</Version>
<Version>1.1.2111.0812</Version>
<RootNamespace>LiMan.UI</RootNamespace>
<AssemblyName>LiMan.UI</AssemblyName>
</PropertyGroup>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>License Manager</i>
<h4>Versione: 1.1.2111.0612</h4>
<h4>Versione: 1.1.2111.0812</h4>
<br />
Note di rilascio:
<ul>
+1 -1
View File
@@ -1 +1 @@
1.1.2111.0612
1.1.2111.0812
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>1.1.2111.0612</version>
<version>1.1.2111.0812</version>
<url>https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/LiMan.UI.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/LiMan/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>