228 lines
7.2 KiB
C#
228 lines
7.2 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.AspNetCore.WebUtilities;
|
|
using Microsoft.JSInterop;
|
|
using NLog;
|
|
using WebDoorCreator.Data;
|
|
using WebDoorCreator.Data.DbModels;
|
|
using WebDoorCreator.Data.Services;
|
|
using WebDoorCreator.UI.Data;
|
|
|
|
namespace WebDoorCreator.UI.Pages
|
|
{
|
|
public partial class DoorDefinition : IDisposable
|
|
{
|
|
#region Public Methods
|
|
|
|
public void Dispose()
|
|
{
|
|
ListBaseDoorOp = null;
|
|
orderStatus = null;
|
|
WDCUService.EA_CurrLanguage -= WDUService_EA_CurrLanguage;
|
|
QDataServ.CalcDonePipe.EA_NewMessage -= CalcDonePipe_EA_NewMessage;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Protected Properties
|
|
|
|
protected bool B_doorOpUpd { get; set; } = false;
|
|
protected string DoorSvgContent { get; set; } = "";
|
|
|
|
protected string ErrCode { get; set; } = "ERRORE";
|
|
protected int idDoor { get; set; } = 0;
|
|
|
|
protected int idOrd { get; set; } = 0;
|
|
|
|
protected bool IsErr { get; set; } = false;
|
|
|
|
[Inject]
|
|
protected IJSRuntime JSRuntime { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected NavigationManager NavManager { get; set; } = null!;
|
|
|
|
protected OrderStatusViewModel? orderStatus { get; set; } = null;
|
|
|
|
protected bool paramChanged { get; set; } = false;
|
|
|
|
[Inject]
|
|
protected QueueDataService QDataServ { get; set; } = null!;
|
|
|
|
protected string userLang { get; set; } = "EN";
|
|
|
|
[Inject]
|
|
protected WDCRefreshService WDCRService { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected WDCUserService WDCUService { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected WebDoorCreatorService WDService { get; set; } = null!;
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Protected Methods
|
|
|
|
protected async Task catchParamChange(bool ParamChanged)
|
|
{
|
|
await Task.Delay(1);
|
|
paramChanged = ParamChanged;
|
|
await InvokeAsync(() =>
|
|
{
|
|
StateHasChanged();
|
|
});
|
|
}
|
|
|
|
/// <summary>
|
|
/// gestione rilettura info
|
|
/// </summary>
|
|
/// <param name="caughtDefStep"></param>
|
|
/// <returns></returns>
|
|
protected async Task doReload(bool forceReset)
|
|
{
|
|
if (forceReset)
|
|
{
|
|
await ReloadData();
|
|
}
|
|
}
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await Task.Delay(1);
|
|
var uri = NavManager.ToAbsoluteUri(NavManager.Uri);
|
|
if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("idOrd", out var _idOrd) && QueryHelpers.ParseQuery(uri.Query).TryGetValue("idDoor", out var _idDoor))
|
|
{
|
|
idOrd = int.Parse(_idOrd);
|
|
idDoor = int.Parse(_idDoor);
|
|
await ReloadData();
|
|
}
|
|
userLang = WDCUService.currLanguage ?? "EN";
|
|
WDCUService.EA_CurrLanguage += WDUService_EA_CurrLanguage;
|
|
QDataServ.CalcDonePipe.EA_NewMessage += CalcDonePipe_EA_NewMessage;
|
|
WDCRService.EA_UpdDoorOp += WDService_EA_DoorOpUpdated;
|
|
}
|
|
|
|
protected async Task ReloadData()
|
|
{
|
|
ListBaseDoorOp = null;
|
|
ListHwDoorOp = null;
|
|
orderStatus = null;
|
|
await Task.Delay(1);
|
|
var ListRecordDoorOp = await WDService.DoorOpGetByDoorId(idDoor);
|
|
if (ListRecordDoorOp != null)
|
|
{
|
|
ListHwDoorOp = ListRecordDoorOp;
|
|
ListBaseDoorOp = ListRecordDoorOp.Where(x => x.ObjectId == "Size" || x.ObjectId == "Profiles" || x.ObjectId == "Swing" || x.ObjectId == "Properties" || x.ObjectId == "Finishing").ToList();
|
|
// calcolo gli hw togliendo DoorOpBase
|
|
foreach (var item in ListBaseDoorOp)
|
|
{
|
|
ListHwDoorOp.Remove(item);
|
|
}
|
|
}
|
|
var domani = DateTime.Today.AddDays(1);
|
|
ListOrdersStatus = null;
|
|
await Task.Delay(1);
|
|
ListOrdersStatus = await WDService.OrderStatusGetFilt(0, 0, domani.AddYears(-2), domani);
|
|
if (ListOrdersStatus != null)
|
|
{
|
|
orderStatus = ListOrdersStatus.Where(x => x.OrderId == idOrd).FirstOrDefault();
|
|
}
|
|
await Task.Delay(1);
|
|
}
|
|
|
|
/// <summary>
|
|
/// gestione impostazione tipSize
|
|
/// </summary>
|
|
/// <param name="caughtDefStep"></param>
|
|
/// <returns></returns>
|
|
protected async Task setStep(int caughtDefStep)
|
|
{
|
|
setHwToNull = false;
|
|
await Task.Delay(1);
|
|
currDefStep = caughtDefStep;
|
|
if (currDefStep == 20)
|
|
{
|
|
setHwToNull = true;
|
|
}
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Private Fields
|
|
|
|
private static Logger Log = LogManager.GetCurrentClassLogger();
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Private Properties
|
|
|
|
private int currDefStep { get; set; } = 10;
|
|
|
|
private List<DoorOpModel>? ListBaseDoorOp { get; set; } = null;
|
|
|
|
private List<DoorOpModel>? ListHwDoorOp { get; set; } = null;
|
|
|
|
private List<OrderStatusViewModel>? ListOrdersStatus { get; set; } = null;
|
|
|
|
private bool setHwToNull { get; set; } = false;
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Private Methods
|
|
|
|
private async void CalcDonePipe_EA_NewMessage(object? sender, EventArgs e)
|
|
{
|
|
DoorSvgContent = "";
|
|
// aggiorno visualizzazione
|
|
PubSubEventArgs currArgs = (PubSubEventArgs)e;
|
|
// conversione on-the-fly SVG da mostrare
|
|
if (!string.IsNullOrEmpty(currArgs.newMessage))
|
|
{
|
|
string doorSvgVers = currArgs.newMessage;
|
|
// verifica che sia la MIA porta e quindi devo proseguire...
|
|
if (doorSvgVers.StartsWith($"{idDoor}.") || doorSvgVers.StartsWith($"{idDoor}:"))
|
|
{
|
|
if (doorSvgVers.Contains("."))
|
|
{
|
|
doorSvgVers = doorSvgVers.Replace(".", ":");
|
|
}
|
|
// fix ./:
|
|
var hasErr = await QDataServ.DoorErrExists(doorSvgVers);
|
|
if (hasErr)
|
|
{
|
|
var messErr = await QDataServ.DoorErrGet(doorSvgVers);
|
|
IsErr = true;
|
|
ErrCode = messErr;
|
|
}
|
|
else
|
|
{
|
|
DoorSvgContent = await QDataServ.DoorSvgGet(doorSvgVers);
|
|
}
|
|
|
|
//cerco su redis la porta in oggetto
|
|
|
|
//if (string.IsNullOrEmpty(DoorSvgContent))
|
|
//{
|
|
|
|
|
|
//}
|
|
await Task.Run(async () => await InvokeAsync(StateHasChanged));
|
|
}
|
|
}
|
|
}
|
|
|
|
private void WDService_EA_DoorOpUpdated()
|
|
{
|
|
B_doorOpUpd = WDCRService.isDoorOpUpd;
|
|
StateHasChanged();
|
|
}
|
|
|
|
private void WDUService_EA_CurrLanguage()
|
|
{
|
|
userLang = WDCUService.currLanguage ?? "EN";
|
|
StateHasChanged();
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |