141 lines
4.0 KiB
C#
141 lines
4.0 KiB
C#
using SteamWare;
|
|
using System;
|
|
|
|
namespace GMW_data
|
|
{
|
|
public class UserControl : SteamWare.UserControl
|
|
{
|
|
/// <summary>
|
|
/// wrapper per log con salvataggio dell'IP del chiamante
|
|
/// </summary>
|
|
/// <param name="_testoPre"></param>
|
|
/// <returns></returns>
|
|
public bool httpLog(string _testoPre)
|
|
{
|
|
bool answ = false;
|
|
string postazione_IP = "";
|
|
try
|
|
{
|
|
postazione_IP = string.Format(" | {0} | ", Request.UserHostName);
|
|
}
|
|
catch
|
|
{ }
|
|
logger.lg.scriviLog(postazione_IP + _testoPre);
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// wrapper per log con salvataggio dell'IP del chiamante
|
|
/// </summary>
|
|
/// <param name="_testoPre"></param>
|
|
/// <returns></returns>
|
|
public bool httpLog(string testoLog, tipoLog tipo)
|
|
{
|
|
bool answ = false;
|
|
string postazione_IP = "";
|
|
try
|
|
{
|
|
postazione_IP = string.Format(" | {0} | ", Request.UserHostName);
|
|
}
|
|
catch
|
|
{ }
|
|
logger.lg.scriviLog(postazione_IP + testoLog, tipo);
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// CodCS in sessione...
|
|
/// </summary>
|
|
public string CodCs
|
|
{
|
|
get
|
|
{
|
|
string answ = memLayer.ML.StringSessionObj("CodCS");
|
|
// se lo perdesse lo recupera da DB
|
|
if (string.IsNullOrEmpty(answ))
|
|
{
|
|
answ = memLayer.ML.cdv("CodCS");
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// restituisce il nome della pagina corrente
|
|
/// </summary>
|
|
public string PagCorrente
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
Uri MyUrl = Request.Url;
|
|
string delimStr = "/";
|
|
char[] delimiter = delimStr.ToCharArray();
|
|
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
|
|
int n = finalUrl.Length;
|
|
answ = finalUrl[n - 1].ToString();
|
|
DataLayer_AnagGen.PermessiRow riga = (DataLayer_AnagGen.PermessiRow)user_std.UtSn.permessi.Select(string.Format("URL = '{0}'", answ))[0];
|
|
answ = riga.NOME;
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// Verifica un particolare SE ABBIA un veto data la linea
|
|
/// </summary>
|
|
/// <param name="codParticolare"></param>
|
|
/// <returns></returns>
|
|
public virtual bool checkPartVetoByLinea(string codParticolare)
|
|
{
|
|
bool answ = false;
|
|
// cerco se avessi già in redis un controllo particolare/linea attivo e il suo risultato...
|
|
string mHash = memLayer.ML.redHash($"lineePartVeto:{Postazione.currCodLinea}:{codParticolare}");
|
|
if (memLayer.ML.getRSV(mHash) != null && memLayer.ML.getRSV(mHash) != "")
|
|
{
|
|
// recupero info...
|
|
bool.TryParse(memLayer.ML.getRSV(mHash), out answ);
|
|
}
|
|
else
|
|
{
|
|
// se non ho attributi sulal linea è già SENZA veto...
|
|
DS_magazzino.ConfLineaDataTable tabConf = MagClass.magazzino.taConfLin.getByLinea(Postazione.currCodLinea);
|
|
if (tabConf.Count > 0)
|
|
{
|
|
// verifico PRIMO RECORD x capire se sono in modalità "passa"
|
|
if (tabConf[0].Modo == 1)
|
|
{
|
|
//--> IMPOSTO VETO
|
|
answ = true;
|
|
// cerco il recordo del particolare x TOGLIERE VETO
|
|
foreach (var item in tabConf)
|
|
{
|
|
// se trovo il record corrente
|
|
if (item.Valore == codParticolare)
|
|
{
|
|
// tolgo veto ed esco!
|
|
answ = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
// modalità NON PASSA
|
|
else
|
|
{
|
|
// cerco il recordo del particolare x METTERE IL VETO
|
|
foreach (var item in tabConf)
|
|
{
|
|
// se trovo il record corrente
|
|
if (item.Valore == codParticolare)
|
|
{
|
|
// metto veto ed esco!
|
|
answ = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// salvo in redis x 5 minuti il controllo fatto...
|
|
memLayer.ML.setRSV(mHash, answ.ToString(), 5 * 60);
|
|
}
|
|
// restituisco risultato!
|
|
return answ;
|
|
}
|
|
}
|
|
}
|