using Newtonsoft.Json;
using SteamWare;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Reflection;
namespace GMW_data
{
///
/// classe gestione utility
///
public class utils
{
#region area table adapters
public DS_UtilityTableAdapters.STPTableAdapter taSTP;
public DS_UtilityTableAdapters.v_selTipoCellaTableAdapter taSelTipoCella;
public DS_UtilityTableAdapters.v_selUdcByPartTableAdapter taUdcByPart;
public DS_UtilityTableAdapters.v_selDestinatariListePrelievoTableAdapter taDestListePre;
public DS_UtilityTableAdapters.v_selParticolariTableAdapter taSelPart;
public DS_UtilityTableAdapters.v_selTipoListaTableAdapter taSelTipoLista;
public DS_UtilityTableAdapters.v_selOperatoriTableAdapter taSelOperatori;
public DS_UtilityTableAdapters.v_selParticolariTableAdapter taSelParticolari;
public DS_UtilityTableAdapters.v_selImballiTableAdapter taSelImballi;
public DS_UtilityTableAdapters.RemoteRebootLogTableAdapter taRRL;
public DS_UtilityTableAdapters.RT_PageValTableAdapter taRTPV;
public DS_batchTableAdapters.AS400_ComandiTableAdapter taAs400;
///
/// init dei table adapters
///
protected void initTA()
{
taSTP = new GMW_data.DS_UtilityTableAdapters.STPTableAdapter();
taSelTipoCella = new GMW_data.DS_UtilityTableAdapters.v_selTipoCellaTableAdapter();
taUdcByPart = new GMW_data.DS_UtilityTableAdapters.v_selUdcByPartTableAdapter();
taDestListePre = new GMW_data.DS_UtilityTableAdapters.v_selDestinatariListePrelievoTableAdapter();
taSelPart = new GMW_data.DS_UtilityTableAdapters.v_selParticolariTableAdapter();
taSelTipoLista = new GMW_data.DS_UtilityTableAdapters.v_selTipoListaTableAdapter();
taSelOperatori = new DS_UtilityTableAdapters.v_selOperatoriTableAdapter();
taSelParticolari = new DS_UtilityTableAdapters.v_selParticolariTableAdapter();
taSelImballi = new DS_UtilityTableAdapters.v_selImballiTableAdapter();
taRRL = new DS_UtilityTableAdapters.RemoteRebootLogTableAdapter();
taRTPV = new DS_UtilityTableAdapters.RT_PageValTableAdapter();
taAs400 = new GMW_data.DS_batchTableAdapters.AS400_ComandiTableAdapter();
}
///
/// effettua setup dei connection strings da web.config delal singola applicazione
///
protected virtual void setupConnectionStringBase()
{
string connString = memLayer.ML.confReadString("GMWConnectionString");
// connections del db
taSTP.Connection.ConnectionString = connString;
taSelTipoCella.Connection.ConnectionString = connString;
taUdcByPart.Connection.ConnectionString = connString;
taDestListePre.Connection.ConnectionString = connString;
taSelPart.Connection.ConnectionString = connString;
taSelTipoLista.Connection.ConnectionString = connString;
taSelOperatori.Connection.ConnectionString = connString;
taSelParticolari.Connection.ConnectionString = connString;
taSelImballi.Connection.ConnectionString = connString;
taRRL.Connection.ConnectionString = connString;
taRTPV.Connection.ConnectionString = connString;
taAs400.Connection.ConnectionString = connString;
}
#endregion
#region Inizializzazione
protected utils()
{
initTA();
setupConnectionStringBase();
setupElOperatori();
// aggiunta x gestione timeout esteso (ove necessario)!
fixCommandTimeout();
}
///
/// sistemazione timeout comandi nei tableadapter
///
private void fixCommandTimeout()
{
SetAllCommandTimeouts(taSTP, memLayer.ML.confReadInt("sqlLongCommandTimeout"));
SetAllCommandTimeouts(taAs400, memLayer.ML.confReadInt("sqlLongCommandTimeout"));
}
void SetAllCommandTimeouts(object adapter, int timeout)
{
var commands = adapter.GetType().InvokeMember(
"CommandCollection",
BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
null, adapter, new object[0]);
var sqlCommand = (SqlCommand[])commands;
foreach (var cmd in sqlCommand)
{
cmd.CommandTimeout = timeout;
}
}
///
/// oggetto static per fare chiamate sul magazzino
///
public static utils obj = new utils();
#endregion
#region area gestione RTPageVal
///
/// Valori RT associati a PAGINA + KEY
///
/// Valore chiave
/// Valore chiave
///
public string RTVal(string pagina, string chiave)
{
string answ = "";
try
{
// verifico SE HO valore...
DS_Utility.RT_PageValDataTable tab = taRTPV.getByPageChiave(pagina, chiave);
if (tab.Rows.Count > 0)
{
answ = tab[0].valore;
}
}
catch
{
answ = "";
}
return answ;
}
#endregion
#region area operatori
///
/// oggetto elenco operatori, chiave codOperatore
///
public Dictionary elOperatori;
///
/// resetta il vocabolario rileggendo i dati...
///
public void resetElOperatori()
{
memLayer.ML.emptyCacheVal("elOperatori");
setupElOperatori();
}
///
/// setup in ram elenco operatori
///
private void setupElOperatori()
{
if (memLayer.ML.isInCacheObject("elOperatori"))
{
if (memLayer.ML.cacheOnRedis)
{
elOperatori = JsonConvert.DeserializeObject>(memLayer.ML.objCacheObj("elOperatori").ToString());
}
else
{
elOperatori = (Dictionary)memLayer.ML.objCacheObj("elOperatori");
}
}
else
{
elOperatori = ricaricaElOperatori();
if (memLayer.ML.cacheOnRedis)
{
string serVal = JsonConvert.SerializeObject(elOperatori);
memLayer.ML.setCacheVal("elOperatori", serVal, true);
}
else
{
memLayer.ML.setCacheVal("elOperatori", elOperatori, false);
}
}
}
///
/// ricarico elenco operatori
///
///
private Dictionary ricaricaElOperatori()
{
Dictionary answ = new Dictionary();
foreach (DS_Utility.v_selOperatoriRow riga in taSelOperatori.GetData())
{
answ.Add(riga.CodSoggetto, string.Format("{0} {1}", riga.Cognome, riga.Nome));
}
return answ;
}
///
/// fornisce traduzione cognome nome da cod operatore (tab in ram)
///
///
///
public string getOperatoreByCod(string codOperatore)
{
string answ = "n.d.";
try
{
answ = elOperatori[codOperatore];
}
catch
{ }
return answ;
}
#endregion
#region area utils x UDC
///
/// Helper gestioen dati UDC per KIT
///
public class objUdcKit
{
public string UDC;
public string Particolare;
public int Qta;
}
#endregion
}
}
public enum tipoCartellino
{
cartAL,
cartALANkit,
cartALRX,
cartALTT,
cartAnime,
cartFiniti,
cartFinitiRxSP,
cartFinitiSP,
cartFusi,
cartLiquidiF10,
cartLiquidiF18,
cartOdette,
cartMP,
cartSterr,
cartTara,
cartTratt,
cartWip,
cartND
}
public enum tipoSelettore
{
cdc,
cellaMagazzino,
magazzino,
UDC_byPart
}