Continuo spostamento metodi nel repository Anag

This commit is contained in:
Samuele Locatelli
2026-06-01 18:54:03 +02:00
parent 5c20387e1d
commit a34dd4cc79
30 changed files with 107 additions and 59 deletions
+57 -19
View File
@@ -12,10 +12,16 @@ namespace MP.Data.Repository.Anag
{
public class AnagRepository : BaseRepository, IAnagRepository
{
#region Public Constructors
public AnagRepository(IDbContextFactory<MoonProContext> ctxFactory) : base(ctxFactory)
{
}
#endregion Public Constructors
#region Public Methods
/// <inheritdoc />
public async Task<AnagCountersModel> AnagCountersGetNextAsync(string cntType)
{
@@ -189,20 +195,6 @@ namespace MP.Data.Repository.Anag
return await ListValuesFiltAsync("AnagArticoli", "Tipo");
}
#if false
/// <inheritdoc />
public async Task<List<string>> ArticleWithDossierAsync()
{
using var dbCtx = new MoonPro_FluxContext(_configuration);
return await dbCtx
.DbSetDossiers
.AsNoTracking()
.Select(i => i.CodArticolo)
.Distinct()
.ToListAsync();
}
#endif
/// <inheritdoc />
public async Task<int> ArticoliCountAsync()
{
@@ -236,6 +228,19 @@ namespace MP.Data.Repository.Anag
return await query.OrderBy(x => x.CodArticolo).CountAsync();
}
/// <inheritdoc />
public async Task<int> ArticoliCountUsedAsync()
{
await using var dbCtx = await CreateContextAsync();
var result = await dbCtx
.DbSetCounter
.FromSqlRaw("EXEC stp_ART_CountUsed")
.AsNoTracking()
.ToListAsync();
return result.FirstOrDefault()?.NumCount ?? 0;
}
/// <inheritdoc />
public async Task<bool> ArticoliDeleteRecordAsync(AnagArticoliModel currRec)
{
@@ -380,6 +385,36 @@ namespace MP.Data.Repository.Anag
}
}
/// <inheritdoc />
public async Task<List<AnagOperatoriModel>> OperatoriGetFiltAsync(string codGruppo)
{
List<AnagOperatoriModel> dbResult = new List<AnagOperatoriModel>();
await using var dbCtx = await CreateContextAsync();
if (codGruppo == "*")
{
dbResult = await dbCtx
.DbOperatori
.AsNoTracking()
.OrderBy(x => x.MatrOpr)
.ToListAsync();
}
else
{
dbResult = await dbCtx
.DbSetGrp2Oper
.Where(g => g.CodGruppo == codGruppo)
.Join(dbCtx.DbOperatori,
g => g.MatrOpr,
m => m.MatrOpr,
(g, m) => m
)
.AsNoTracking()
.OrderBy(x => x.MatrOpr)
.ToListAsync();
}
return dbResult;
}
/// <inheritdoc />
public async Task<Dictionary<int, int>> PODL_getDictOdlPodlAsync(List<int> missingIds)
{
@@ -388,14 +423,15 @@ namespace MP.Data.Repository.Anag
await using var dbCtx = await CreateContextAsync();
return await dbCtx
.DbSetPODL
.AsNoTracking()
.Where(x => missingIds.Contains(x.IdxOdl))
.ToDictionaryAsync(x => x.IdxOdl, x => x.IdxPromessa);
.DbSetPODL
.AsNoTracking()
.Where(x => missingIds.Contains(x.IdxOdl))
.ToDictionaryAsync(x => x.IdxOdl, x => x.IdxPromessa);
}
/// <summary>
/// Recupero dizionario traduzioni da cache o DB
/// </summary>
/// <param name="lingua">Codice lingua</param>
/// <returns>Dizionario di traduzioni</returns>
@@ -413,5 +449,7 @@ namespace MP.Data.Repository.Anag
.DistinctBy(t => t.Lemma, StringComparer.OrdinalIgnoreCase)
.ToDictionary(t => t.Lemma, t => t.Traduzione, StringComparer.OrdinalIgnoreCase);
}
#endregion Public Methods
}
}
}