146 lines
3.9 KiB
C#
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
|
|
}
|
|
} |