Files
Samuele E. Locatelli e8d2c5206c Fix check licenza
2019-10-04 18:39:24 +02:00

210 lines
5.0 KiB
C#

using SteamWare;
using System;
namespace AppData
{
public class licenzeApp
{
/// <summary>
/// Numero di utenti attivi
/// </summary>
public static int utentiAttivi
{
get
{
int answ = dataLayer.man.taAO.GetData().Count;
return answ;
}
}
/// <summary>
/// Numero postazioni
/// </summary>
public static int postazioniAttive
{
get
{
int answ = dataLayer.man.taAP.GetData().Count;
return answ;
}
}
/// <summary>
/// numero di licenze attive sul sw (SE CONFORMI A CHIAVE) altrimenti da dll steamware
/// </summary>
public static int licenzeAttive
{
get
{
int answ = 0;
try
{
int licenzeMax = SteamWare.licenseMan.getLicenseNum(installazione, applicazione);
// verifico dato su DB sia valido... expiry date con quel numero sia > della data odierna!!!
if (scadenzaLicenza >= DateTime.Today)
{
answ = licenzeDb;
}
else
{
answ = licenzeMax;
}
}
catch (Exception exc)
{
logger.lg.scriviLog($"Eccezione in licenzeAttive:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
return answ;
}
}
/// <summary>
/// numero di licenze attive su DB (NON verificate!)
/// </summary>
public static int licenzeDb
{
get
{
int answ = 0;
// controllo su db...
try
{
answ = rigaLicenza.valInt;
}
catch (Exception exc)
{
logger.lg.scriviLog($"Eccezione in licenzeDb:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
return answ;
}
}
/// <summary>
/// chaive licenza
/// </summary>
public static string authKey
{
get
{
string answ = "";
// controllo su db...
try
{
answ = rigaLicenza.valString;
}
catch (Exception exc)
{
logger.lg.scriviLog($"Eccezione in authKey:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
return answ;
}
}
/// <summary>
/// nome installazione sw
/// </summary>
public static string installazione
{
get
{
string answ = "";
try
{
answ = dataLayer.man.taAKV.getByKey("installazione")[0].valString;
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore recupero chiave installazione da AKV: {0}", exc), tipoLog.EXCEPTION);
}
return answ;
}
}
/// <summary>
/// modalità applicazione (pagina test.aspx)
/// </summary>
public static string modApp
{
get
{
string answ = "";
try
{
answ = dataLayer.man.taAKV.getByKey("appMode")[0].valString;
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore recupero chiave appMode da AKV: {0}", exc), tipoLog.EXCEPTION);
}
return answ;
}
}
/// <summary>
/// nome applicazione sw
/// </summary>
public static string applicazione
{
get
{
string answ = memLayer.ML.CRS("appName");
return answ;
}
}
/// <summary>
/// verifica se numero licenze copre utenti attivi...
/// </summary>
public static bool checkLicenze
{
get
{
bool answ = false;
try
{
answ = utentiAttivi <= licenzeAttive;
if (!answ && memLayer.ML.CRI("_logLevel") > 5)
{
logger.lg.scriviLog(string.Format("WARNING licenze: utenti attivi {0} / licenziati {1}", utentiAttivi, licenzeAttive), tipoLog.WARNING);
}
}
catch (Exception exc)
{
logger.lg.scriviLog($"Eccezione in checkLicenze:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
return answ;
}
}
/// <summary>
/// scadenza licenze x applicativo
/// </summary>
public static DateTime scadenzaLicenza
{
get
{
DateTime answ = DateTime.Now.AddYears(2000 - DateTime.Now.Year);
try
{
answ = licenseMan.expiryDateByAuthKey(installazione, applicazione, rigaLicenza.valInt, rigaLicenza.valString);
}
catch (Exception exc)
{
logger.lg.scriviLog($"Eccezione in scadenzaLicenza:{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
return answ;
}
}
protected static DS_Utility.AnagKeyValueRow rigaLicenza
{
get
{
DS_Utility.AnagKeyValueRow riga = null;
DS_Utility.AnagKeyValueDataTable tabKey = dataLayer.man.taAKV.getByKey(installazione);
// se non trovato provo installazione + environment...
if (tabKey.Count == 0)
{
tabKey = dataLayer.man.taAKV.getByKey(applicazione);
}
if (tabKey.Count > 0)
{
riga = tabKey[0];
}
return riga;
}
}
}
}