Files
gpw_next/GPW.CORE.SMART/Components/UserQrCode.razor.cs
T
2023-01-16 18:18:00 +01:00

111 lines
3.2 KiB
C#

using GPW.CORE.Data.DbModels;
using GPW.CORE.Smart.Data;
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using static GPW.CORE.Comp.Toggler;
namespace GPW.CORE.Smart.Components
{
public partial class UserQrCode
{
#region Protected Methods
protected override async Task OnInitializedAsync()
{
initToggler();
await initConf();
await ReloadData();
}
protected string getUrlCode(string baseUrl, string authKey)
{
return $"{baseUrl}jumper?idxDipendente={idxDipendente}&authKey={authKey}";
}
#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;
recordDip = ListaDip.FirstOrDefault(x => x.IdxDipendente == idxDipendente);
StateHasChanged();
}
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (recordDip != null)
{
string baseUrl = UrlLinkInt;
string rawCode = getUrlCode(baseUrl, recordDip.AuthKey);
await JSRuntime.InvokeVoidAsync("clearContent", $"qrCodeImg_{idxDipendente}");
await JSRuntime.InvokeVoidAsync("displayQr", $"qrCodeImg_{idxDipendente}", rawCode);
}
}
[Inject]
private IJSRuntime JSRuntime { get; set; } = null!;
private DipendentiModel? recordDip { get; set; } = null;
private SelectGlobalToggle ToggleData { get; set; } = new SelectGlobalToggle();
private string UrlLinkExt { get; set; } = "";
private string UrlLinkInt { get; set; } = "";
#endregion Private Properties
#region Private Methods
/// <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 SelectGlobalToggle()
{
leftString = "Reset + Invio",
rightString = "Solo Invio",
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
}
}