using GPW_data;
using SteamWare;
using System;
using System.Linq;
namespace GPW_Admin
{
public class BaseUserControl : System.Web.UI.UserControl
{
#region Public Events
///
/// Generico evento di richiesta AddNew
///
public event EventHandler eh_addNew;
///
/// Generico evento di richiesta refresh a parent
///
public event EventHandler eh_doRefresh;
///
/// Generico evento di richiesta refresh a parent
///
public event EventHandler eh_doReset;
#endregion Public Events
#region Public Properties
///
/// pagina corrente (URL finale)
///
public string _paginaCorrente { get; set; }
///
/// controllo stato licenze!
///
public bool chkLicOk => doChkLicOk();
#endregion Public Properties
#region Public Methods
///
/// Verifica se il valore sia > limitValue
///
///
///
///
///
public bool betweenVal(object _valore, double minVal, double maxVal)
{
bool answ = false;
if (_valore != null)
{
double valore = 0;
_ = double.TryParse(_valore.ToString(), out valore);
answ = valore <= maxVal && valore >= minVal;
}
return answ;
}
///
/// Verifica se il valore sia > limitValue
///
///
///
///
public bool gtVal(object _valore, double maxVal)
{
bool answ = false;
if (_valore != null)
{
double valore = 0;
_ = double.TryParse(_valore.ToString(), out valore);
answ = valore > maxVal;
}
return answ;
}
///
/// Verifica se il valore sia > 0
///
///
///
public bool gtZero(object _valore)
{
bool answ = false;
if (_valore != null)
{
decimal valore = 0;
_ = decimal.TryParse(_valore.ToString(), out valore);
answ = valore > 0;
}
return answ;
}
///
/// risponde alla domanda se l'utente abbia permesso tipo writable (S) nel permessi2funzione
///
///
public bool isWritable()
{
bool answ = false;
if (_paginaCorrente == null)
{
PagCorrente();
}
answ = user_std.UtSn.isPageWriteEnabled(_paginaCorrente) && chkLicOk;
return answ;
}
/// Verifica se il valore sia < minVal
///
public bool ltVal(object _valore, double minVal)
{
bool answ = false;
if (_valore != null)
{
double valore = 0;
_ = double.TryParse(_valore.ToString(), out valore);
answ = valore < minVal;
}
return answ;
}
///
/// Chiamata evento add New
///
public void raiseAddNew()
{
// se qualcuno ascolta sollevo evento nuovo valore...
if (eh_addNew != null)
{
eh_addNew(this, new EventArgs());
}
}
///
/// Chiamata evento
///
public void raiseEvent()
{
// se qualcuno ascolta sollevo evento nuovo valore...
if (eh_doRefresh != null)
{
eh_doRefresh(this, new EventArgs());
}
}
///
/// Chiamata evento
///
public void raiseReset()
{
// se qualcuno ascolta sollevo evento nuovo valore...
if (eh_doReset != null)
{
eh_doReset(this, new EventArgs());
}
}
///
/// converte valore in booleano
///
///
///
public bool toBool(object valore)
{
bool answ = false;
string strVal = $"{valore}";
// se è lungh 1 (0/1) converto 0=false, 1 = true...
if (strVal.Length == 1)
{
answ = strVal == "1" ? true : false;
}
else
{
// se è un valore testuale --> converisone boolean
bool.TryParse($"{valore}", out answ);
}
return answ;
}
///
/// effettua traduzione del lemma
///
///
///
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
///
/// wrapper traduzione
///
///
///
public string traduci(object lemma)
{
string answ = "";
if (lemma != null)
answ = traduci(lemma.ToString());
return answ;
}
#endregion Public Methods
#region Protected Properties
protected DS_Applicazione.DipendentiDataTable listaDip { get; set; }
#endregion Protected Properties
#region Protected Methods
///
/// Calcola email del responsabile dato idx
///
///
///
protected string emailResp(int idxResp)
{
string answ = "";
// recupero email resp...
if (idxResp > 0)
{
var recResp = listaDip.FirstOrDefault(x => x.idxDipendente == idxResp);
if (recResp != null)
{
answ = $"{recResp.email}";
}
}
return answ;
}
///
/// salva in variabile pagina il nome della pagina corrente
///
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
#endregion Protected Methods
#region Private Methods
///
/// controllo stato licenze!
///
private bool doChkLicOk()
{
return (licenzeGPW.checkLicenze && licenzeGPW.checkPayload);
}
#endregion Private Methods
}
}