Files

92 lines
2.4 KiB
C#

namespace EgwCoreLib.Lux.Core
{
/// <summary>
/// Generico dizionario parametri con funzione ricerca valore (SE presente)
/// </summary>
public class ParamDict
{
#region Public Constructors
/// <summary>
/// init classe dal valore serializzato del dizionario
/// </summary>
/// <param name="rawVal"></param>
public ParamDict(string rawVal)
{
DictVals = JsonConvert.DeserializeObject<Dictionary<string, string>>(rawVal) ?? new Dictionary<string, string>();
}
/// <summary>
/// init classe da dizionario
/// </summary>
/// <param name="newDict"></param>
public ParamDict(Dictionary<string, string> newDict)
{
DictVals = newDict;
}
#endregion Public Constructors
#region Public Properties
/// <summary>
/// Versione serializzata del dizionario
/// </summary>
public string Serialized
{
get => JsonConvert.SerializeObject(DictVals);
}
#endregion Public Properties
#region Public Methods
/// <summary>
/// Ricerca (se disponibile) il valore della chiave richiesta
/// </summary>
/// <param name="reqKey"></param>
/// <returns></returns>
public string GetVal(string reqKey)
{
string answ = "";
if (DictVals.ContainsKey(reqKey))
{
answ = DictVals[reqKey];
}
return answ;
}
/// <summary>
/// Imposta valore (aggiungendo se mancasse)
/// </summary>
/// <param name="Key"></param>
/// <param name="Val"></param>
public void SetVal(string Key, string Val)
{
if (DictVals.ContainsKey(Key))
{
DictVals[Key] = Val;
}
else
{
DictVals.Add(Key, Val);
}
}
#endregion Public Methods
public Dictionary<string, string> DictReadOnly
{
get => DictVals;
}
#region Private Properties
/// <summary>
/// Dizionario interno valori
/// </summary>
private Dictionary<string, string> DictVals { get; set; } = new Dictionary<string, string>();
#endregion Private Properties
}
}