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? DoorOpsList { get; set; } protected List DoorsList { get; set; } = new List(); protected string keyWord { get => _keyWord; set => _keyWord = value; } protected List listOp { get; set; } = new List(); protected List listOpAll { get; set; } = new List(); [Inject] protected NavigationManager NavManager { get; set; } = null!; protected List? OrdersList { get; set; } protected List ordListVal { get; set; } = new List(); [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); } } } } } /// /// Effettua salvataggio record e generazione DDF /// /// 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("ConfDDF:VersNumber"); bool remDoorOp = config.GetValue("ConfDDF:RemoveDoorOps"); var headRows = config.GetSection("ConfDDF:Header").Get>(); var footRows = config.GetSection("ConfDDF:Footer").Get>(); 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)); } } }