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 EC_Close { get; set; } [Parameter] public EventCallback EC_ReqAdd { get; set; } [Parameter] public List ListCataloghi { get; set; } = null!; [Parameter] public List ListTemplateAll { get; set; } = null!; #endregion Public Properties #region Protected Methods protected Task ClosePopup() { return EC_Close.InvokeAsync(true); } /// /// Solleva evento richeista aggiunta da template /// /// /// 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 ListTemplateCurr = new(); private List ListTemplatePaged = new(); private int numRecord = 12; private List pageSizes = new List() { 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 /// /// Calcolo URL immagine /// /// /// /// /// 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 } }