Files
lux/Lux.UI/Components/Compo/Item/SellingItemEdit.razor.cs
T
2026-04-02 15:48:02 +02:00

112 lines
3.1 KiB
C#

using EgwCoreLib.Lux.Data.DbModel.Job;
namespace Lux.UI.Components.Compo.Item
{
public partial class SellingItemEdit
{
#region Public Properties
[Parameter]
public SellingItemModel? CurrRecord { get; set; } = null;
[Parameter]
public EventCallback<bool> EC_Close { get; set; }
[Parameter]
public EventCallback<SellingItemModel> EC_Updated { get; set; }
[Parameter]
public List<ItemGroupModel> ListItemGroup { get; set; } = null!;
[Parameter]
public List<JobTaskModel> ListJobTask { get; set; } = null!;
#endregion Public Properties
#region Private Fields
private string folderPath = "static";
#endregion Private Fields
#region Private Properties
[Inject]
private IDataLayerServices DLService { get; set; } = null!;
[Inject]
private IFileService FService { get; set; } = null!;
/// <summary>
/// Wrapper per valore margine in modalità decimal
/// </summary>
private decimal MarginDec
{
get => CurrRecord != null ? (decimal)CurrRecord.Margin : 0M;
set
{
if (CurrRecord != null)
{
CurrRecord.Margin = (double)value;
}
}
}
[Inject]
private ISellingItemService SIService { get; set; } = null!;
#endregion Private Properties
#region Private Methods
private bool DeleteOld()
{
bool answ = false;
return answ;
}
private Task DoCancel()
{
return EC_Close.InvokeAsync(true);
}
private Task DoSave()
{
// richiede di effettuare salvataggio record...
return EC_Updated.InvokeAsync(CurrRecord);
}
private List<EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS> ListEnvir()
{
var tmpList = Enum.GetValues(typeof(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS))
.Cast<EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS>()
.Where(e => Convert.ToInt32(e) != 0)
.ToList();
return tmpList;
}
private async Task UploadFile(InputFileChangeEventArgs e)
{
IBrowserFile file = e.File;
var maxAllowedSize = 10 * 1024 * 1024;
if (CurrRecord is null)
return;
string extension = Path.GetExtension(file.Name);
string newFileName = $"{SellingItemModel.CodeUid(CurrRecord.SellingItemID)}{extension}";
// elimino vecchio file
FService.DeleteOldFile(folderPath, CurrRecord.FileName);
// salvo nuovo file (stream → file)
using var stream = file.OpenReadStream(maxAllowedSize);
await FService.SaveFileStreamAsync(folderPath, newFileName, stream);
CurrRecord.FileName = newFileName;
await SIService.UpdateFileDataAsync(CurrRecord);
}
#endregion Private Methods
}
}