109 lines
3.4 KiB
C#
109 lines
3.4 KiB
C#
using SteamWare;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace AppData
|
|
{
|
|
/// <summary>
|
|
/// macchina di gestione degli stati
|
|
/// </summary>
|
|
public class stateMachine
|
|
{
|
|
|
|
protected DS_AppTableAdapters.AnagEventiTableAdapter taEv;
|
|
protected DS_AppTableAdapters.TraEv2StatiTableAdapter taEv2St;
|
|
//protected DS_applicazioneTableAdapters.IstObjTableAdapter taIstObj;
|
|
protected stateMachine()
|
|
{
|
|
avvioTA();
|
|
setupConnectionStringBase();
|
|
}
|
|
/// <summary>
|
|
/// avvia table adapters
|
|
/// </summary>
|
|
private void avvioTA()
|
|
{
|
|
taEv = new DS_AppTableAdapters.AnagEventiTableAdapter();
|
|
taEv2St = new DS_AppTableAdapters.TraEv2StatiTableAdapter();
|
|
//taIstObj = new DS_applicazioneTableAdapters.IstObjTableAdapter();
|
|
}
|
|
/// <summary>
|
|
/// effettua setup dei connection strings da web.config della singola applicazione
|
|
/// </summary>
|
|
protected virtual void setupConnectionStringBase()
|
|
{
|
|
string connString = memLayer.ML.confReadString("CTrackConnectionString");
|
|
// connections strings del db
|
|
taEv.Connection.ConnectionString = connString;
|
|
taEv2St.Connection.ConnectionString = connString;
|
|
//taIstObj.Connection.ConnectionString = connString;
|
|
}
|
|
public static stateMachine st = new stateMachine();
|
|
/// <summary>
|
|
/// restituisce il tipo di comando associato...
|
|
/// </summary>
|
|
/// <param name="comando"></param>
|
|
/// <returns></returns>
|
|
public tipoAzione azioneComando(inputComando comando)
|
|
{
|
|
Match testNumTask = Regex.Match(comando.valore, mUtils.reNumTask);
|
|
Match testOper = Regex.Match(comando.valore, mUtils.reCodOper);
|
|
Match testPost = Regex.Match(comando.valore, mUtils.reCodPost);
|
|
tipoAzione _azione = tipoAzione.noAct;
|
|
// se è un SET OPR o POST è un azione IMPLICITA...
|
|
if (testOper.Success || testPost.Success)
|
|
{
|
|
_azione = tipoAzione.esegui;
|
|
}
|
|
else if (testNumTask.Success)
|
|
{
|
|
_azione = tipoAzione.esegui;
|
|
}
|
|
else if (dataLayer.man.taAF.getByKey(comando.currCmdIn).Rows.Count > 0)
|
|
{
|
|
_azione = tipoAzione.esegui;
|
|
}
|
|
else
|
|
{
|
|
// altrimenti controllo azione
|
|
string toDo = "";
|
|
try
|
|
{
|
|
toDo = taEv.getByKey(comando.currCmdIn)[0].Action;
|
|
}
|
|
catch
|
|
{ }
|
|
switch (toDo)
|
|
{
|
|
case "ok":
|
|
_azione = tipoAzione.conferma;
|
|
break;
|
|
case "ko":
|
|
_azione = tipoAzione.annulla;
|
|
break;
|
|
case "act":
|
|
_azione = tipoAzione.esegui;
|
|
break;
|
|
default:
|
|
_azione = tipoAzione.noAct;
|
|
break;
|
|
}
|
|
}
|
|
return _azione;
|
|
}
|
|
}
|
|
|
|
public enum tipoAzione
|
|
{
|
|
annulla,
|
|
conferma,
|
|
esegui,
|
|
noAct,
|
|
setup
|
|
}
|
|
public enum tipoEsito
|
|
{
|
|
error,
|
|
ok,
|
|
undef
|
|
}
|
|
} |