211 lines
5.0 KiB
C#
211 lines
5.0 KiB
C#
using GPW.CORE.Data;
|
|
using GPW.CORE.Data.DbModels;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
namespace GPW.CORE.UI.Data
|
|
{
|
|
public class MessageService
|
|
{
|
|
|
|
#region Private Fields
|
|
|
|
private string _pageIcon = "";
|
|
|
|
private string _pageName = "";
|
|
|
|
private string _searchVal = "";
|
|
|
|
private DipendentiModel _rigaDip;
|
|
|
|
private bool showSearch;
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Public Events
|
|
|
|
public event Action EA_HideSearch = null!;
|
|
|
|
public event Action EA_PageUpdated = null!;
|
|
|
|
public event Action EA_SearchUpdated = null!;
|
|
|
|
public event Action EA_ShowSearch = null!;
|
|
|
|
#endregion Public Events
|
|
|
|
#region Public Properties
|
|
|
|
public string PageIcon
|
|
{
|
|
get => _pageIcon;
|
|
set
|
|
{
|
|
if (_pageIcon != value)
|
|
{
|
|
_pageIcon = value;
|
|
ReportPageUpd();
|
|
}
|
|
}
|
|
}
|
|
|
|
public string PageName
|
|
{
|
|
get => _pageName;
|
|
set
|
|
{
|
|
if (_pageName != value)
|
|
{
|
|
_pageName = value;
|
|
ReportPageUpd();
|
|
}
|
|
}
|
|
}
|
|
|
|
public string SearchVal
|
|
{
|
|
get => _searchVal;
|
|
set
|
|
{
|
|
if (_searchVal != value)
|
|
{
|
|
_searchVal = value;
|
|
|
|
if (EA_SearchUpdated != null)
|
|
{
|
|
EA_SearchUpdated?.Invoke();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public DipendentiModel? RigaDip
|
|
{
|
|
get => _rigaDip;
|
|
set
|
|
{
|
|
if (_rigaDip != value)
|
|
{
|
|
_rigaDip = value;
|
|
|
|
if (EA_SearchUpdated != null)
|
|
{
|
|
EA_SearchUpdated?.Invoke();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public int IdxDipendente
|
|
{
|
|
get
|
|
{
|
|
int answ = 0;
|
|
if (_rigaDip != null)
|
|
{
|
|
answ = _rigaDip.IdxDipendente;
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
|
|
public bool IsActive
|
|
{
|
|
get
|
|
{
|
|
bool answ = false;
|
|
if (_rigaDip != null)
|
|
{
|
|
answ = (bool)_rigaDip.Attivo;
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
public bool PayloadOk { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// Calcola HASH del codice impiego = payload utente
|
|
/// </summary>
|
|
/// <param name="rigaDip"></param>
|
|
/// <returns></returns>
|
|
public string HashDip
|
|
{
|
|
get
|
|
{
|
|
string hash = "";
|
|
string answ = "";
|
|
if (_rigaDip != null)
|
|
{
|
|
answ = $"{_rigaDip.IdxDipendente}|{_rigaDip.Cognome}.{_rigaDip.Nome}|{_rigaDip.Cf}|{_rigaDip.DataAssunzione:yyyyMMdd}|{_rigaDip.Email}|{_rigaDip.Matricola}";
|
|
}
|
|
// hashing!
|
|
using (var md5 = MD5.Create())
|
|
{
|
|
byte[] InputBytes = Encoding.UTF8.GetBytes(answ);
|
|
var byteHash = md5.ComputeHash(InputBytes);
|
|
hash = BitConverter.ToString(byteHash).Replace("-", "").ToLowerInvariant();
|
|
}
|
|
return hash;
|
|
}
|
|
}
|
|
|
|
public bool ShowSearch
|
|
{
|
|
get => showSearch;
|
|
set
|
|
{
|
|
if (showSearch != value)
|
|
{
|
|
showSearch = value;
|
|
if (showSearch)
|
|
{
|
|
if (EA_ShowSearch != null)
|
|
{
|
|
EA_ShowSearch?.Invoke();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (EA_HideSearch != null)
|
|
{
|
|
EA_HideSearch?.Invoke();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public RegAttivitaModel? recordRA { get; set; } = null;
|
|
public RegAttivitaModel? clonedRA { get; set; } = null;
|
|
|
|
|
|
public int selWeekNum { get; set; } = 0;
|
|
public int selYear { get; set; } = DateTime.Today.Year;
|
|
|
|
public DateTime targetDate { get; set; } = DateTime.Today;
|
|
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Private Methods
|
|
|
|
private void ReportPageUpd()
|
|
{
|
|
if (EA_PageUpdated != null)
|
|
{
|
|
EA_PageUpdated?.Invoke();
|
|
}
|
|
}
|
|
|
|
private void ReportSearch()
|
|
{
|
|
if (EA_SearchUpdated != null)
|
|
{
|
|
EA_SearchUpdated?.Invoke();
|
|
}
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
}
|