109 lines
3.8 KiB
C#
109 lines
3.8 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Microsoft.AspNetCore.WebUtilities;
|
|
using System.Collections.Specialized;
|
|
using WebDoorCreator.Data.DbModels;
|
|
using WebDoorCreator.UI.Data;
|
|
|
|
namespace WebDoorCreator.UI.Pages
|
|
{
|
|
public partial class OrderDetails
|
|
{
|
|
#region Protected Properties
|
|
|
|
[Inject]
|
|
protected UserManager<IdentityUser> _userManager { get; set; } = null!;
|
|
|
|
protected DoorModel? currDoor { get; set; } = null;
|
|
|
|
protected int currDoorType { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Unità di misura selezionata
|
|
/// </summary>
|
|
protected string currMeaUnit { get; set; } = "mm";
|
|
|
|
protected List<DoorModel>? DoorsList { get; set; } = null;
|
|
|
|
protected int idOrd { get; set; } = -1;
|
|
|
|
[Inject]
|
|
protected NavigationManager NavManager { get; set; } = null!;
|
|
|
|
protected OrderStatusViewModel? OrderStatus { get; set; } = null;
|
|
|
|
[Inject]
|
|
protected WebDoorCreatorService WDService { get; set; } = null!;
|
|
|
|
[Inject]
|
|
protected WDCUserService WDCUService { get; set; } = null!;
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Protected Methods
|
|
|
|
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))
|
|
{
|
|
idOrd = int.Parse(_idOrd);
|
|
}
|
|
}
|
|
#endregion Protected Methods
|
|
|
|
#region Private Fields
|
|
|
|
private List<OrderStatusViewModel>?ListOrdersStatus = null;
|
|
|
|
protected async Task createDoor()
|
|
{
|
|
// conto le porte x questo ordine e uso x chiamata successiva...
|
|
var door4ord = await WDService.DoorGetByOrderId(idOrd);
|
|
int numDoors = door4ord?.Count + 1 ?? 1;
|
|
DateTime adesso = DateTime.Now;
|
|
// creo una nuova porta...
|
|
DoorModel newDoor = new DoorModel()
|
|
{
|
|
OrderId = idOrd,
|
|
MeasureUnit = currMeaUnit,
|
|
UserIdIns = WDCUService.userId,
|
|
UserIdMod = WDCUService.userId,
|
|
UserIdLock = WDCUService.userId,
|
|
DateIns = adesso,
|
|
DateMod = adesso,
|
|
DateLockExpiry = adesso.AddHours(1),
|
|
DoorDescript = $"ORD {idOrd} | Door {numDoors:00}",
|
|
DoorExtCode = $"ORD {idOrd} | Ext Code --",
|
|
Quantity = 1,
|
|
UnitCost = 0,
|
|
TypeId = 1
|
|
};
|
|
// chiamo metodo x insert...
|
|
var doorId = await WDService.DoorInsert(newDoor);
|
|
// aggiungo le lavorazioni standard...
|
|
var doorOpList = await WDService.DoorOpGetDefault();
|
|
|
|
List<DoorOpModel> listOp = doorOpList
|
|
.Select(x => new DoorOpModel()
|
|
{
|
|
DateIns = adesso,
|
|
DateMod = adesso,
|
|
UserIdIns = WDCUService.userId,
|
|
UserIdMod = WDCUService.userId,
|
|
DoorOpTypId = x.DoorOpTypId,
|
|
DoorId = doorId,
|
|
JsoncConfigVal = x.JsoncConfig
|
|
})
|
|
.ToList();
|
|
// salvo Door OP associate
|
|
await WDService.DoorOpInsert(doorId, listOp);
|
|
|
|
// rimando alla pagina... dettaglio...
|
|
NavManager.NavigateTo($"/DoorDefinition?idOrd={idOrd}&idDoor={doorId}");
|
|
}
|
|
|
|
#endregion Private Fields
|
|
}
|
|
} |