Files
lux/Lux.UI/Components/Compo/Offer/AddFromTemplate.razor.cs
T
2026-03-23 19:46:00 +01:00

146 lines
3.9 KiB
C#

using EgwCoreLib.Lux.Core;
using EgwCoreLib.Lux.Data.DbModel.Catalog;
using EgwCoreLib.Lux.Data.Services.General;
using Microsoft.AspNetCore.Components;
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 Protected Methods
protected Task ClosePopup()
{
return EC_Close.InvokeAsync(true);
}
/// <summary>
/// Solleva evento richeista aggiunta da template
/// </summary>
/// <param name="selTemplate"></param>
/// <returns></returns>
protected Task DoAddOrderRow(TemplateRowModel selTemplate)
{
return EC_ReqAdd.InvokeAsync(selTemplate);
}
#endregion Protected Methods
#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
/// <summary>
/// Calcolo URL immagine
/// </summary>
/// <param name="tipoImg"></param>
/// <param name="imgUid"></param>
/// <param name="env"></param>
/// <returns></returns>
private string imgUrl(Enums.ImageType tipoImg, string imgUid, string env)
{
string answ = "";
switch (tipoImg)
{
case Enums.ImageType.Calculated:
// cast string su env..
EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW;
Enum.TryParse(env, out envir);
answ = ICService.ImageUrl($"{BaseImgUrl}", false, imgUid, envir);
break;
case Enums.ImageType.ND:
case Enums.ImageType.Fixed:
answ = $"{BaseImgUrl}/static/{imgUid}";
break;
default:
break;
}
return answ;
}
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
}
}