using GPW.CORE.Data.DbModels; using System.Security.Cryptography; using System.Text; namespace GPW.CORE.Data { /// /// Classe validazione valori /// public class DataValidator { #region Public Constructors public DataValidator(DipendentiModel? currRigaDip) { rigaDip = currRigaDip; } #endregion Public Constructors #region Public Properties /// /// Restituisce HASH del codice impiego = payload utente /// /// public string HashDip { get => calcHashDip; } #endregion Public Properties #region Public Methods /// /// Calcolo Hash data stringa input /// /// /// public static string CalcHash(string rawData) { string hash = ""; // hashing! using (var md5 = MD5.Create()) { byte[] InputBytes = Encoding.UTF8.GetBytes(rawData); var byteHash = md5.ComputeHash(InputBytes); hash = BitConverter.ToString(byteHash).Replace("-", "").ToLowerInvariant(); } return hash; } #endregion Public Methods #region Private Fields private DipendentiModel? rigaDip = null; #endregion Private Fields #region Private Properties /// /// Calcola HASH del codice impiego = payload utente /// /// private string calcHashDip { get { string hash = ""; string buffData = ""; if (rigaDip != null) { buffData = $"{rigaDip.IdxDipendente}|{rigaDip.Cognome}.{rigaDip.Nome}|{rigaDip.Cf}|{rigaDip.DataAssunzione:yyyyMMdd}|{rigaDip.Email}|{rigaDip.Matricola}"; } if (!string.IsNullOrEmpty(buffData)) { hash = CalcHash(buffData); #if false // hashing! using (var md5 = MD5.Create()) { byte[] InputBytes = Encoding.UTF8.GetBytes(buffData); var byteHash = md5.ComputeHash(InputBytes); hash = BitConverter.ToString(byteHash).Replace("-", "").ToLowerInvariant(); } #endif } return hash; } } #endregion Private Properties } }