Files
Samuele Locatelli 7f8d21976f Update roles!
2023-05-31 08:36:56 +02:00

142 lines
5.2 KiB
C#

using Microsoft.AspNetCore.Components;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.Data.Services;
namespace WebDoorCreator.UI.Pages
{
public partial class Utils
{
protected string _keyWord { get; set; } = "Cache";
[Inject]
protected IConfiguration config { get; set; } = null!;
protected WebDoorCreator.Data.DDF.Converter currDdfConv { get; set; } = null!;
protected bool done { get; set; } = false;
protected List<DoorOpModel>? DoorOpsList { get; set; }
protected List<DoorModel> DoorsList { get; set; } = new List<DoorModel>();
protected string keyWord
{
get => _keyWord;
set => _keyWord = value;
}
protected List<DoorOpModel> listOp { get; set; } = new List<DoorOpModel>();
protected List<DoorOpModel> listOpAll { get; set; } = new List<DoorOpModel>();
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
protected List<OrderStatusViewModel>? OrdersList { get; set; }
protected List<string> ordListVal { get; set; } = new List<string>();
[Inject]
protected QueueDataService QDataServ { get; set; } = null!;
[Inject]
protected WebDoorCreatorService WDCService { get; set; } = null!;
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
public async Task flushCache()
{
await Task.Delay(1);
await WDService.FlushRedisCache();
await Task.Delay(1);
// rimando a pagina corrente
NavManager.NavigateTo("/", true);
}
public async Task FlushCustomPattern()
{
await Task.Delay(1);
await WDService.FlushCustomPattern(keyWord);
await Task.Delay(1);
// rimando a pagina corrente
NavManager.NavigateTo("/", true);
}
protected async Task doorsGetAll()
{
await ordersGetAll();
if (OrdersList != null)
{
foreach (var item in OrdersList)
{
var doors2Add = await WDCService.DoorGetByOrderId(item.OrderId);
if (doors2Add != null)
{
foreach (var door in doors2Add)
{
DoorsList.Add(door);
}
}
}
}
}
/// <summary>
/// Effettua salvataggio record e generazione DDF
/// </summary>
/// <returns></returns>
protected async Task doSave()
{
await doorsGetAll();
if (DoorsList != null)
{
foreach (var door in DoorsList)
{
await Task.Delay(50);
listOpAll = await WDCService.DoorOpGetByDoorId(door.DoorId);
if (listOpAll != null)
{
listOp = listOpAll.Where(x => x.userConfirm != "" && x.DtConfirm != null).ToList();
if (listOp != null)
{
// chiamo metodo x avewre DDF serializzato
//var list2Ord = ;
var CurrentCompoOrder = await WDCService.ListValuesGetAll("*", "Hardware");
if (CurrentCompoOrder != null)
{
foreach (var item in CurrentCompoOrder.OrderBy(x => x.Ordinal).ToList())
{
ordListVal.Add(item.TableName);
}
}
listOp = listOp.OrderBy(d => ordListVal.IndexOf(d.ObjectId)).ToList();
if (listOp.Count != 0 && listOp != null)
{
string currDdf = currDdfConv.GetSerialized(listOp);
// FIXME TODO: si potrebbe eliminare in futuro che va su REDIS
//await SaveYaml(currDdf);
// versione corrente del DDF generato
int currVers = await QDataServ.SendCalcReq(door.DoorId, currDdf);
}
}
}
}
}
done = true;
}
protected override void OnInitialized()
{
base.OnInitialized();
string vers = config.GetValue<string>("ConfDDF:VersNumber");
bool remDoorOp = config.GetValue<bool>("ConfDDF:RemoveDoorOps");
var headRows = config.GetSection("ConfDDF:Header").Get<List<string>>();
var footRows = config.GetSection("ConfDDF:Footer").Get<List<string>>();
currDdfConv = new WebDoorCreator.Data.DDF.Converter(vers, remDoorOp, headRows, footRows);
}
protected async Task ordersGetAll()
{
DateTime adesso = DateTime.Today;
OrdersList = await WDCService.OrderStatusGetFilt(0, 0, adesso.AddYears(-200), adesso.AddYears(200));
}
}
}