Files
mapo-core/MP.INVE/Pages/Session.razor.cs
T
zaccaria.majid 446d376a9f bozza paging
2022-11-18 12:51:35 +01:00

198 lines
6.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components;
using System.Net.Http;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.AspNetCore.Components.Routing;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.Web.Virtualization;
using Microsoft.JSInterop;
using MP.INVE;
using MP.INVE.Shared;
using MP.INVE.Components;
using MP.Data.DatabaseModels;
using MP.INVE.Data;
using MP.Data.DTO;
using Blazored.LocalStorage;
namespace MP.INVE.Pages
{
public partial class Session
{
[Inject]
private MiDataService MIDataservice { get; set; } = null!;
DataPagerParams currParams = new DataPagerParams();
private List<InventorySessionModel>? elencoSessioni;
private List<InventorySessionModel>? SearchRecords;
private List<AnagOperatoriModel>? elencoOperatori;
private List<AnagMagModel>? elencoMagazzini;
private DataPager pagerSession = null!;
protected override async Task OnInitializedAsync()
{
//await FilterChanged.InvokeAsync(actFilter);
await getId();
await Task.Delay(1);
await reloadData();
}
private bool inCorso { get; set; } = true;
protected async Task toggle()
{
inCorso = !inCorso;
await reloadData();
}
protected string BaseUrlTab { get => $"{Configuration["ServerConf:BaseUrlJumper"]}"; }
private string idOperatore { get; set; } = "";
private int currIdSess { get; set; } = 0;
private string authKey { get; set; } = "";
private DateTime dtStart { get; set; } = DateTime.Now.AddMonths(-1);
private DateTime dtEnd { get; set; } = DateTime.Now;
protected string rawCode
{
get
{
string answ = "";
answ = $"{BaseUrlTab}IdSessione={currIdSess}&MatrOpr={idOperatore}&UserAuthKey={authKey}";
return answ;
}
}
private void openNew()
{
reqNew = true;
elencoOperatori = MIDataservice.ElencoOperatori(0, "");
elencoMagazzini = MIDataservice.ElencoMagazzini();
}
private void closeNew()
{
reqNew = false;
elencoOperatori = new List<AnagOperatoriModel>();
elencoMagazzini = new List<AnagMagModel>();
}
private async Task insertNewSession()
{
var alert = await JSRuntime.InvokeAsync<bool>("confirm", "Confermi di voler creare una nuova sessione per il magazzino selezionato?");
if (alert)
{
InventorySessionModel newSess = new InventorySessionModel()
{
UserCrea = idOperatore,
Description = desc,
DtStart = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/dd HH:mm")),
DtEnd = null,
Transferred = false,
MagID = magazzino
};
await MIDataservice.InsertNewSessione(newSess);
NavManager.NavigateTo("Session", true);
await reloadData();
}
else
{
closeNew();
}
}
private async Task deleteSession(InventorySessionModel session)
{
var alert = await JSRuntime.InvokeAsync<bool>("confirm", "Confermi di voler creare una nuova sessione per il magazzino selezionato?");
if (alert)
{
await MIDataservice.deleteSessione(session);
NavManager.NavigateTo("Session", true);
await reloadData();
}
}
private bool reqNew { get; set; } = false;
private bool isLoading { get; set; } = false;
private string matrOpr { get; set; } = "";
private int magazzino { get; set; } = 0;
private string desc { get; set; } = "";
private int totalCount
{
get => currParams.TotCount;
set=> currParams.TotCount = value;
}
private int numRecord
{
get => currParams.NumRec;
set => currParams.NumRec = value;
}
private int currPage
{
get => currParams.CurrPage;
set => currParams.CurrPage = value;
}
private async Task reloadData()
{
elencoSessioni = null;
isLoading = true;
if (inCorso)
{
SearchRecords = MIDataservice.InventSessCurrList();
}
else
{
SearchRecords = MIDataservice.InventSessHistList(dtStart, dtEnd);
}
totalCount = SearchRecords.Count;
elencoSessioni = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
await Task.Delay(1);
await InvokeAsync(() => StateHasChanged());
await Task.Delay(1);
isLoading = false;
}
protected async Task getCurrSess(int idSess)
{
currIdSess = idSess;
await JSRuntime.InvokeVoidAsync("clearContent", $"qrCodeImg_{101}");
await JSRuntime.InvokeVoidAsync("displayQr", $"qrCodeImg_{101}", rawCode);
}
[Inject]
private IConfiguration Configuration { get; set; } = null!;
[Inject]
protected ILocalStorageService localStorage { get; set; } = null!;
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
[Inject]
protected IJSRuntime JSRuntime { get; set; } = null!;
protected void ForceReload(int newNum)
{
numRecord = newNum;
}
protected void ForceReloadPage(int newNum)
{
currPage = newNum;
}
protected async Task getId()
{
OperatoreDTO local = new OperatoreDTO();
local = await localStorage.GetItemAsync<OperatoreDTO>("MatrOpr");
if (local != null)
{
idOperatore = local.MatrOpr.ToString();
authKey = local.hashAuthKey;
}
}
}
}