using System.Collections.Generic;
namespace SteamWare
{
///
/// classe per effettuare confronto tra valori disomogeneri per tipo e costruire diff testuali
///
public class confrontoValori
{
#region area protected
///
/// valore originale
///
protected string _valOld;
///
/// nuovo valore
///
protected string _valNew;
///
/// dictionary dei parametri vecchi
///
protected Dictionary _paramOld;
///
/// dictionary dei parametri nuovi
///
protected Dictionary _paramNew;
///
/// inizializzazione classe
///
protected confrontoValori()
{
}
#endregion
#region area public
///
/// stringa diff dei valori originali modificati
///
public string valOld
{
get
{
return _valOld;
}
set
{
_valOld = value;
}
}
///
/// stringa diff dei valori nuovi modificati
///
public string valNew
{
get
{
return _valNew;
}
set
{
_valNew = value;
}
}
///
/// valorizza i diff dei valori old e new
///
public void doDiff()
{
// eseguo diff, andando a iterare nel dictionary dei valori old e cercando nel new, se diverso inserisco traducento...
foreach (string colonna in paramOld.Keys)
{
if (paramNew.ContainsKey(colonna))
{
if (paramNew[colonna] != paramOld[colonna])
{
// salvo la modifica...
valOld += string.Format("{0}: {1}
", colonna, paramOld[colonna]);
valNew += string.Format("{0}: {1}
", colonna, paramNew[colonna]);
}
}
}
// se è + lunga di 4 contiene qualcosa, tolgo le ultime 4 che sono "
"
if (valOld.Length > 4)
{
valOld = valOld.Substring(0, valOld.Length - 4);
valNew = valNew.Substring(0, valNew.Length - 4);
}
}
///
/// calcola solo il vettore dei valori old (x delete)
///
public void calcOldVal()
{
foreach (string colonna in paramOld.Keys)
{
// salvo la modifica...
valOld += string.Format("{0}: {1}
", colonna, paramOld[colonna]);
}
// se è + lunga di 4 contiene qualcosa, tolgo le ultime 4 che sono "
"
if (valOld.Length > 4)
{
valOld = valOld.Substring(0, valOld.Length - 4);
}
}
///
/// dictionary dei parametri old
///
public Dictionary paramOld
{
get
{
return _paramOld;
}
set
{
_valOld = "";
_paramOld = value;
}
}
///
/// dictionary dei parametri new
///
public Dictionary paramNew
{
get
{
return _paramNew;
}
set
{
_valNew = "";
_paramNew = value;
}
}
///
/// oggetto statico per il confronto valori
///
public static confrontoValori obj = new confrontoValori();
#endregion
}
}