142 lines
5.2 KiB
C#
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));
|
|
}
|
|
}
|
|
} |