134 lines
3.9 KiB
C#
134 lines
3.9 KiB
C#
using EgwCoreLib.Razor;
|
|
using GPW.CORE.Data.DbModels;
|
|
using GPW.CORE.Smart.Data;
|
|
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.JSInterop;
|
|
|
|
namespace GPW.CORE.Smart.Components.Compo
|
|
{
|
|
public partial class UserQrCode
|
|
{
|
|
#region Protected Methods
|
|
|
|
protected string getUrlCode(string baseUrl, string authKey)
|
|
{
|
|
return $"{baseUrl}jumper?idxDipendente={idxDipendente}&authKey={authKey}";
|
|
}
|
|
|
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|
{
|
|
if (recordDip != null)
|
|
{
|
|
string baseUrl = ToggleData.isActive ? UrlLinkInt : UrlLinkExt;
|
|
//calcolo authKey valida x url --> escaped!
|
|
string authKeyFix = System.Web.HttpUtility.UrlEncode(recordDip.AuthKey);
|
|
string newCode = getUrlCode(baseUrl, authKeyFix);
|
|
if (rawCode != newCode)
|
|
{
|
|
rawCode = newCode;
|
|
await JSRuntime.InvokeVoidAsync("clearContent", $"qrCodeImg_{idxDipendente}");
|
|
await JSRuntime.InvokeVoidAsync("displayQr", $"qrCodeImg_{idxDipendente}", rawCode);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
initToggler();
|
|
await initConf();
|
|
await ReloadData();
|
|
}
|
|
|
|
protected string rawCode = "";
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Private Fields
|
|
|
|
private List<DipendentiModel> ListaDip = new List<DipendentiModel>();
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Private Properties
|
|
|
|
private int _idxDip { get; set; } = 0;
|
|
|
|
[Inject]
|
|
private CoreSmartDataService CDService { get; set; } = null!;
|
|
|
|
[Inject]
|
|
private IConfiguration Configuration { get; set; } = null!;
|
|
|
|
private int idxDipendente
|
|
{
|
|
get => _idxDip;
|
|
set
|
|
{
|
|
_idxDip = value;
|
|
if (value > 0)
|
|
{
|
|
recordDip = ListaDip.FirstOrDefault(x => x.IdxDipendente == idxDipendente);
|
|
}
|
|
else
|
|
{
|
|
recordDip = null;
|
|
}
|
|
//StateHasChanged();
|
|
}
|
|
}
|
|
|
|
[Inject]
|
|
private IJSRuntime JSRuntime { get; set; } = null!;
|
|
|
|
private DipendentiModel? recordDip { get; set; } = null;
|
|
|
|
private Toggler.SelectGlobalToggle ToggleData { get; set; } = new Toggler.SelectGlobalToggle();
|
|
|
|
private string UrlLinkExt { get; set; } = "";
|
|
|
|
private string UrlLinkInt { get; set; } = "";
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Private Methods
|
|
|
|
private async Task evToggled(Toggler.SelectGlobalToggle newTogData)
|
|
{
|
|
ToggleData = newTogData;
|
|
await Task.Delay(1);
|
|
}
|
|
|
|
/// <summary>
|
|
/// init valori da config
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private async Task initConf()
|
|
{
|
|
UrlLinkInt = Configuration.GetValue<string>("OptPar:UrlLinkInt") ?? "";
|
|
UrlLinkExt = Configuration.GetValue<string>("OptPar:UrlLinkExt") ?? "";
|
|
await Task.Delay(1);
|
|
}
|
|
|
|
private void initToggler()
|
|
{
|
|
ToggleData = new Toggler.SelectGlobalToggle()
|
|
{
|
|
leftString = "Link Esterno",
|
|
rightString = "Link Interno",
|
|
placardCss = "bg-light border-light text-dark",
|
|
};
|
|
}
|
|
|
|
private async Task ReloadData()
|
|
{
|
|
var rawList = await CDService.DipendentiGetAll();
|
|
ListaDip = rawList
|
|
.Where(x => x.Attivo == true)
|
|
.OrderBy(x => x.Cognome)
|
|
.ThenBy(x => x.Nome)
|
|
.ToList();
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |