namespace Lux.UI.Components.Compo.Templates { public partial class TemplateRowMan { #region Public Properties /// /// Modello dell'offerta corrente (bindato dal genitore). /// [Parameter] public TemplateRowModel CurrRecord { get; set; } = null!; /// /// Callback invocato al chiusura della finestra (con valore true per cancellazione). /// [Parameter] public EventCallback EC_Close { get; set; } /// /// Callback invocato al salvataggio con record aggiornato /// [Parameter] public EventCallback EC_Updated { get; set; } [Parameter] public List ListSellinglItems { get; set; } = null!; #endregion Public Properties #region Private Fields /// /// Path da parent record /// /// /// private string folderPath = "static"; #endregion Private Fields #region Private Properties [Inject] private IFileService FService { get; set; } = null!; #endregion Private Properties #region Private Methods private Task DoCancel() { return EC_Close.InvokeAsync(true); } private Task DoClearImg() { // imgtype da selling item... CurrRecord.ImgType = EgwCoreLib.Lux.Core.Enums.ImageType.ND; CurrRecord.FileName = ""; return EC_Updated.InvokeAsync(CurrRecord); } private Task DoSave() { // richiesta update con salvataggio record return EC_Updated.InvokeAsync(CurrRecord); } /// /// Check visibilità upload dato il selling item ID corrente /// /// /// private bool ShowImgUpload(int sellItemId) { bool answ = false; if (sellItemId > 0) { var selRec = ListSellinglItems.FirstOrDefault(x => x.SellingItemID == sellItemId); if (selRec != null) { answ = selRec.ImgType != EgwCoreLib.Lux.Core.Enums.ImageType.Calculated; } } return answ; } 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 = $"{TemplateRowModel.CodeUid(CurrRecord.TemplateRowID)}{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.ImgType = EgwCoreLib.Lux.Core.Enums.ImageType.Fixed; CurrRecord.FileName = newFileName; await EC_Updated.InvokeAsync(CurrRecord); } #endregion Private Methods } }