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
}
}