Vocabolario: preselezioni IT/EN

This commit is contained in:
Samuele Locatelli
2026-06-04 11:46:35 +02:00
parent bb358790ea
commit 93dea86d85
5 changed files with 40 additions and 65 deletions
@@ -85,49 +85,49 @@ namespace EgwCoreLib.Lux.Data.Services.Admin
/// <inheritdoc />
public async Task<List<VocabolarioModel>> GetAllAsync()
{
return await TraceAsync($"{_className}.GetAllAsync", async (activity) =>
{
return await GetOrSetCacheAsync(
$"{_redisBaseKey}:{_className}:ALL",
async () => await _repo.GetAllAsync()
);
});
return await GetOrFetchAsync(
"GetAllAsync",
$"{_redisBaseKey}:{_className}:ALL",
() => _repo.GetAllAsync(),
base.LongCache,
_className
);
}
/// <inheritdoc />
public async Task<VocabolarioModel?> GetByIdAsync(string lingua, string lemma)
{
return await TraceAsync($"{_className}.GetById", async (activity) =>
{
return await GetOrSetCacheAsync(
$"{_redisBaseKey}:{_className}:GetById:{lingua}:{lemma}",
async () => await _repo.GetByIdAsync(lingua, lemma)
);
});
return await GetOrFetchAsync(
"GetByIdAsync",
$"{_redisBaseKey}:{_className}:GetById:{lingua}:{lemma}",
() => _repo.GetByIdAsync(lingua, lemma),
base.LongCache,
_className
);
}
/// <inheritdoc />
public async Task<List<VocabolarioModel>> GetByLang(string lingua)
{
return await TraceAsync($"{_className}.GetByLang", async (activity) =>
{
return await GetOrSetCacheAsync(
$"{_redisBaseKey}:{_className}:GetByLang:{lingua}",
async () => await _repo.GetByLang(lingua)
);
});
return await GetOrFetchAsync(
"GetByLang",
$"{_redisBaseKey}:{_className}:GetByLang:{lingua}",
() => _repo.GetByLang(lingua),
base.LongCache,
_className
);
}
/// <inheritdoc />
public async Task<List<LinguaModel>> ListLingueAsync()
{
return await TraceAsync($"{_className}.ListLingueAsync", async (activity) =>
{
return await GetOrSetCacheAsync(
$"{_redisBaseKey}:{_className}:Lingue",
async () => await _repo.ListLingueAsync()
);
});
return await GetOrFetchAsync(
"ListLingueAsync",
$"{_redisBaseKey}:{_className}:Lingue",
() => _repo.ListLingueAsync(),
base.LongCache,
_className
);
}
/// <inheritdoc />
+3 -3
View File
@@ -5,8 +5,8 @@
</div>
<div class="px-1">
<div class="input-group input-group-sm">
<select class="form-select" @bind="@selLingua" @bind:after="FiltLingua">
@if (string.IsNullOrEmpty(selLingua))
<select class="form-select" @bind="@SelLingua" @bind:after="FiltLingua">
@if (string.IsNullOrEmpty(SelLingua))
{
<option value="">Sel &rarr;</option>
}
@@ -15,7 +15,7 @@
<option value="@item.Lingua">@item.Lingua</option>
}
</select>
@if (!string.IsNullOrEmpty(selLingua))
@if (!string.IsNullOrEmpty(SelLingua))
{
<button class="btn btn-info" @onclick="DoClone" title="clona su nuova lingua"><i class="fa-solid fa-wand-magic-sparkles"></i></button>
}
@@ -21,6 +21,9 @@ namespace Lux.UI.Components.Compo.Admin
[Parameter]
public string SearchVal { get; set; } = string.Empty;
[Parameter]
public string SelLingua { get; set; } = "";
#endregion Public Properties
#region Protected Methods
@@ -36,8 +39,8 @@ namespace Lux.UI.Components.Compo.Admin
private async Task DoClone()
{
if (!string.IsNullOrEmpty(selLingua))
await EC_ReqClone.InvokeAsync(selLingua);
if (!string.IsNullOrEmpty(SelLingua))
await EC_ReqClone.InvokeAsync(SelLingua);
}
#endregion Protected Methods
@@ -49,7 +52,6 @@ namespace Lux.UI.Components.Compo.Admin
private bool isLoading = false;
private List<VocabolarioModel> ListPaged = new();
private int numRecord = 10;
private string selLingua = "";
private int totalCount = 0;
@@ -97,9 +99,9 @@ namespace Lux.UI.Components.Compo.Admin
private void UpdateTable()
{
ListPaged.Clear();
if (!string.IsNullOrEmpty(selLingua))
if (!string.IsNullOrEmpty(SelLingua))
{
var rawList = AllRecord.Where(x => x.Lingua == selLingua).ToList();
var rawList = AllRecord.Where(x => x.Lingua == SelLingua).ToList();
if (!string.IsNullOrEmpty(SearchVal))
{
rawList = rawList.Where(x =>
+2 -2
View File
@@ -39,10 +39,10 @@
{
<div class="row">
<div class="col-6">
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec" EC_ReqClone="DoCloneLang"></VocabMan>
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec" EC_ReqClone="DoCloneLang" SelLingua="IT"></VocabMan>
</div>
<div class="col-6">
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec" EC_ReqClone="DoCloneLang"></VocabMan>
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec" EC_ReqClone="DoCloneLang" SelLingua="EN"></VocabMan>
</div>
</div>
}
-27
View File
@@ -25,30 +25,3 @@
</div>
</div>
</body>
<body>
<i>LUX - Web Windows MES</i>
<h4>Versione: 1.1.2606.0411</h4>
<br /> Note di rilascio:
<ul>
<li>
<b>Ultime modifiche:</b>
<ul>{{LAST-CHANGES}}</ul>
</li>
<li>
<b>v.0.9.* &rarr;</b>
<ul>
<li>Versione preliminare</li>
<li>Release dotNet8</li>
<li>Integrazione EFCore</li>
</ul>
</li>
</ul>
<div>
<div style="float: left;">
<img src="logoEgalware.png" />
</div>
<div style="float: right;">
<a href="https://www.egalware.net/LUX" target="_blank">&copy; Egalware 2025+</a>
</div>
</div>
</body>