Fix metodi da redisService a BaseObj
This commit is contained in:
+57
-21
@@ -49,13 +49,6 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// </summary>
|
||||
public AlarmBlockType alarmType = AlarmBlockType.Bitmap;
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Conf adapter corrente
|
||||
/// </summary>
|
||||
public IobConfiguration cIobConf;
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Conteggio ATTUALE ore macchina IN LAVORO
|
||||
/// </summary>
|
||||
@@ -146,6 +139,11 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// </summary>
|
||||
public DateTime lastIobOnline = DateTime.Now.AddHours(-1);
|
||||
|
||||
/// <summary>
|
||||
/// Ultima verifica status IOB x forzare display status SRV
|
||||
/// </summary>
|
||||
public DateTime lastIobStatusDisplUpdate = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// dataOra ultimo log periodico...
|
||||
/// </summary>
|
||||
@@ -171,11 +169,6 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// </summary>
|
||||
public DateTime lastSim;
|
||||
|
||||
/// <summary>
|
||||
/// Ultima verifica status IOB x forzare display status SRV
|
||||
/// </summary>
|
||||
public DateTime lastIobStatusDisplUpdate = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// dataOra ultimo segnale inviato al SERVER...
|
||||
/// </summary>
|
||||
@@ -206,11 +199,6 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// </summary>
|
||||
public bool needRefreshPzCount = true;
|
||||
|
||||
/// <summary>
|
||||
/// Coda degli esiti di ping x calcolo stato macchina
|
||||
/// </summary>
|
||||
public DataQueue QueuePing;
|
||||
|
||||
/// <summary>
|
||||
/// Determina se utilizzare blocchi di memoria IOT contigui (e quindi processing
|
||||
/// "monoblocco" semplificato"=
|
||||
@@ -220,22 +208,27 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// <summary>
|
||||
/// Coda valori ALLARMI ove gestiti...
|
||||
/// </summary>
|
||||
public DataQueue QueueAlarm;// = new DataQueue("000", "QueueAlarm", false);
|
||||
public DataQueue QueueAlarm;
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto della coda degli elementi letti di tipo FluxLog (e non ancora trasmessi)
|
||||
/// </summary>
|
||||
public DataQueue QueueFLog;// = new DataQueue("000", "QueueFLog", false);
|
||||
public DataQueue QueueFLog;
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto della coda degli elementi letti (e non ancora trasmessi)
|
||||
/// </summary>
|
||||
public DataQueue QueueIN;// = new DataQueue("000", "QueueIN", false);
|
||||
public DataQueue QueueIN;
|
||||
|
||||
/// <summary>
|
||||
/// Coda valori MESSAGGI/EVENTI (da non sottocampionare come samples)...
|
||||
/// </summary>
|
||||
public DataQueue QueueMessages;// = new DataQueue("000", "QueueMessages", false);
|
||||
public DataQueue QueueMessages;
|
||||
|
||||
/// <summary>
|
||||
/// Coda degli esiti di ping x calcolo stato macchina
|
||||
/// </summary>
|
||||
public DataQueue QueuePing;
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto della coda degli elementi di tipo RawTransf (e non ancora trasmessi)
|
||||
@@ -642,6 +635,49 @@ namespace IOB_UT_NEXT.Iob
|
||||
return doVeto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera la chiave per le statistiche delle chiamate.
|
||||
/// </summary>
|
||||
protected string GetCallStatsKey() => redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}:CallStats");
|
||||
|
||||
/// <summary>
|
||||
/// Recupera la chiave per i dati di produzione correnti.
|
||||
/// </summary>
|
||||
protected string GetCurrProdDataKey() => redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}:CurrProdData");
|
||||
|
||||
/// <summary>
|
||||
/// Recupera la chiave per il flusso di memoria.
|
||||
/// </summary>
|
||||
protected string GetFluxMemKey() => redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}:FluxMem");
|
||||
|
||||
/// <summary>
|
||||
/// Recupera la chiave per l'invio dei PODL.
|
||||
/// </summary>
|
||||
protected string GetPOdlSentKey() => redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}:POdlSent");
|
||||
|
||||
/// <summary>
|
||||
/// Recupera un valore specifico dal hash dello stato dell'IOB.
|
||||
/// </summary>
|
||||
protected string GetStatusField(string field)
|
||||
{
|
||||
string baseKey = redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}");
|
||||
return redisMan.redGetHashField(baseKey, field);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera la chiave per le statistiche settimanali.
|
||||
/// </summary>
|
||||
protected string GetWeekStatsKey() => redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}:WeekStats");
|
||||
|
||||
/// <summary>
|
||||
/// Imposta un valore nel hash dello stato dell'IOB.
|
||||
/// </summary>
|
||||
protected void SetStatusField(string field, string value)
|
||||
{
|
||||
string baseKey = redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}");
|
||||
redisMan.redSetHashField(baseKey, field, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup di tutti gli oggetti Queue, ma solo alcuni hanno coda REDIS (quelli senza sono "sacrificabili"
|
||||
/// </summary>
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
using System;
|
||||
using IOB_UT_NEXT;
|
||||
|
||||
namespace IOB_WIN_FORM.Iob.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// Servizio applicativo che funge da wrapper semantico per le operazioni Redis.
|
||||
/// Incapsula la costruzione delle chiavi per proteggere la logica di business dalla struttura fisica delle chiavi.
|
||||
/// </summary>
|
||||
public class RedisService
|
||||
{
|
||||
private readonly RedisIobCache _redisMan;
|
||||
private readonly string _filenameIob;
|
||||
private readonly tipoAdapter _tipo;
|
||||
|
||||
public RedisService(RedisIobCache redisMan, string filenameIob, tipoAdapter tipo)
|
||||
{
|
||||
_redisMan = redisMan ?? throw new ArgumentNullException(nameof(redisMan));
|
||||
_filenameIob = filenameIob ?? throw new ArgumentNullException(nameof(filenameIob));
|
||||
_tipo = tipo;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera un valore specifico dal hash dello stato dell'IOB.
|
||||
/// </summary>
|
||||
/// <param name="field">Il campo del hash da recuperare.</param>
|
||||
/// <returns>Il valore come stringa.</returns>
|
||||
public string GetStatusField(string field)
|
||||
{
|
||||
string key = $"IOB:Status:{_filenameIob}";
|
||||
// Nota: Utilizziamo redHash per generare la chiave base se necessario,
|
||||
// ma qui puntiamo direttamente alla struttura concordata.
|
||||
return _redisMan.redGetHashField(key, field);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Imposta un valore nel hash dello stato dell'IOB.
|
||||
/// </summary>
|
||||
/// <param name="field">Il campo del hash da impostare.</param>
|
||||
/// <param name="value">Il valore da impostare.</param>
|
||||
public void SetStatusField(string field, string value)
|
||||
{
|
||||
string key = $"IOB:Status:{_filenameIob}";
|
||||
_redisMan.redSetHashField(key, field, value);
|
||||
}
|
||||
|
||||
// Altri metodi semantici verranno aggiunti man mano che il refactoring procede.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user