Files
lux/Lux.UI/Components/Compo/Offer/AddFromTemplate.razor.cs
2026-04-02 15:48:02 +02:00

116 lines
3.0 KiB
C#

namespace Lux.UI.Components.Compo.Offer
{
public partial class AddFromTemplate
{
#region Public Properties
[Parameter]
public string BaseImgUrl { get; set; } = "";
[Parameter]
public EventCallback<bool> EC_Close { get; set; }
[Parameter]
public EventCallback<TemplateRowModel> EC_ReqAdd { get; set; }
[Parameter]
public List<TemplateModel> ListCataloghi { get; set; } = null!;
[Parameter]
public List<TemplateRowModel> ListTemplateAll { get; set; } = null!;
#endregion Public Properties
#region Private Fields
private int _selTemplateID = 0;
private int currPage = 1;
private List<TemplateRowModel> ListTemplateCurr = new();
private List<TemplateRowModel> ListTemplatePaged = new();
private int numRecord = 12;
private List<int> pageSizes = new List<int>() { 6, 12 };
private int totalCount = 0;
#endregion Private Fields
#region Private Properties
[Inject]
private IImageCacheService ICService { get; set; } = null!;
private int SelTemplateID
{
get => _selTemplateID;
set
{
if (_selTemplateID != value)
{
_selTemplateID = value;
UpdateTable();
}
}
}
#endregion Private Properties
#region Private Methods
private Task ClosePopup()
{
return EC_Close.InvokeAsync(true);
}
/// <summary>
/// Solleva evento richeista aggiunta da template
/// </summary>
/// <param name="selTemplate"></param>
/// <returns></returns>
private Task DoAddOrderRow(TemplateRowModel selTemplate)
{
return EC_ReqAdd.InvokeAsync(selTemplate);
}
/// <summary>
/// Calcola src immagine direttamente da modello dati + base path
/// </summary>
/// <param name="imgUrl"></param>
/// <returns></returns>
private string imgSrc(string imgUrl)
{
return $"{BaseImgUrl}/{imgUrl}";
}
private void SaveNumRec(int newNum)
{
numRecord = newNum;
UpdateTable();
}
private void SavePage(int newNum)
{
currPage = newNum;
UpdateTable();
}
private void UpdateTable()
{
// imposto template relativi
ListTemplateCurr = ListTemplateAll
.Where(x => x.TemplateID == SelTemplateID)
.ToList();
totalCount = ListTemplateCurr.Count;
ListTemplatePaged = ListTemplateCurr
.Skip(numRecord * (currPage - 1))
.Take(numRecord)
.ToList();
}
#endregion Private Methods
}
}