Ancora fix async

This commit is contained in:
Samuele Locatelli
2026-04-20 08:49:02 +02:00
parent dd0854a6ef
commit 8c307dee5c
+56 -155
View File
@@ -571,18 +571,6 @@ namespace MP.Data.Controllers
return dbResult;
}
public MacchineModel? MacchineGetByIdx(string IdxMacchina)
{
MacchineModel dbResult = null;
using var dbCtx = new MoonProContext(_configuration);
dbResult = dbCtx
.DbSetMacchine
.FirstOrDefault(x => x.IdxMacchina == IdxMacchina);
return dbResult;
}
public async Task<MacchineModel?> MacchineGetByIdxAsync(string IdxMacchina)
{
MacchineModel dbResult = null;
@@ -600,112 +588,61 @@ namespace MP.Data.Controllers
/// </summary>
/// <param name="codGruppo"></param>
/// <returns></returns>
public List<MacchineModel> MacchineGetFilt(string codGruppo)
public async Task<List<MacchineModel>> MacchineGetFiltAsync(string codGruppo)
{
List<MacchineModel> dbResult = new List<MacchineModel>();
try
using var dbCtx = new MoonProContext(_configuration);
if (codGruppo == "*")
{
using (var dbCtx = new MoonProContext(_configuration))
{
if (codGruppo == "*")
{
dbResult = dbCtx
.DbSetMacchine
.AsNoTracking()
.OrderBy(x => x.IdxMacchina)
.ToList();
}
else
{
dbResult = dbCtx
.DbSetGrp2Macc
.Where(g => g.CodGruppo == codGruppo)
.Join(dbCtx.DbSetMacchine,
g => g.IdxMacchina,
m => m.IdxMacchina,
(g, m) => m
)
.AsNoTracking()
.OrderBy(x => x.IdxMacchina)
.ToList();
}
}
dbResult = await dbCtx
.DbSetMacchine
.AsNoTracking()
.OrderBy(x => x.IdxMacchina)
.ToListAsync();
}
catch (Exception exc)
else
{
Log.Error($"Eccezione in MacchineGetFilt{Environment.NewLine}{exc}");
dbResult = await dbCtx
.DbSetGrp2Macc
.Where(g => g.CodGruppo == codGruppo)
.Join(dbCtx.DbSetMacchine,
g => g.IdxMacchina,
m => m.IdxMacchina,
(g, m) => m
)
.AsNoTracking()
.OrderBy(x => x.IdxMacchina)
.ToListAsync();
}
return dbResult;
}
/// <summary>
/// Upsert Record Macchine
/// </summary>
/// <returns></returns>
public bool MacchineUpsert(MacchineModel entity)
{
using (MoonProContext dbCtx = new MoonProContext(_configuration))
{
// Recuperiamo l'entità tracciata dal context
var trackedEntity = dbCtx.DbSetMacchine.FirstOrDefault(x => x.IdxMacchina == entity.IdxMacchina);
if (trackedEntity != null)
{
// Aggiorna i valori dell'entità tracciata con quelli della nuova
dbCtx.Entry(trackedEntity).CurrentValues.SetValues(entity);
}
else
{
dbCtx.DbSetMacchine.Update(entity);
}
return dbCtx.SaveChanges() > 0;
}
}
/// <summary>
/// Upsert Record Macchine ASYNC
/// </summary>
/// <returns></returns>
public async Task<bool> MacchineUpsertAsync(MacchineModel entity)
{
using (MoonProContext dbCtx = new MoonProContext(_configuration))
{
// Recuperiamo l'entità tracciata dal context
var trackedEntity = await dbCtx
using var dbCtx = new MoonProContext(_configuration);
// Recuperiamo l'entità tracciata dal context
var trackedEntity = await dbCtx
.DbSetMacchine
.FirstOrDefaultAsync(x => x.IdxMacchina == entity.IdxMacchina);
if (trackedEntity != null)
{
// Aggiorna i valori dell'entità tracciata con quelli della nuova
dbCtx.Entry(trackedEntity).CurrentValues.SetValues(entity);
}
else
{
dbCtx.DbSetMacchine.Update(entity);
}
bool fatto = await dbCtx.SaveChangesAsync() > 0;
return fatto;
}
}
/// <summary>
/// Elenco da tabella Macchine
/// </summary>
/// <param name="IdxMacc"></param>
/// <returns></returns>
public List<MicroStatoMacchinaModel> MicroStatoMacchinaGetByIdxMacc(string IdxMacc)
{
List<MicroStatoMacchinaModel> dbResult = new List<MicroStatoMacchinaModel>();
using (var dbCtx = new MoonProContext(_configuration))
if (trackedEntity != null)
{
dbResult = dbCtx
.DbSetMicroStatoMacc
.Where(x => x.IdxMacchina == IdxMacc)
.AsNoTracking()
.ToList();
return dbResult;
// Aggiorna i valori dell'entità tracciata con quelli della nuova
dbCtx.Entry(trackedEntity).CurrentValues.SetValues(entity);
}
else
{
dbCtx.DbSetMacchine.Update(entity);
}
bool fatto = await dbCtx.SaveChangesAsync() > 0;
return fatto;
}
/// <summary>
@@ -716,49 +653,14 @@ namespace MP.Data.Controllers
public async Task<List<MicroStatoMacchinaModel>> MicroStatoMacchinaGetByIdxMaccAsync(string IdxMacc)
{
List<MicroStatoMacchinaModel> dbResult = new List<MicroStatoMacchinaModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = await dbCtx
using var dbCtx = new MoonProContext(_configuration);
dbResult = await dbCtx
.DbSetMicroStatoMacc
.Where(x => x.IdxMacchina == IdxMacc)
.AsNoTracking()
.ToListAsync();
return dbResult;
}
}
/// <summary>
/// Aggiornamento record Microstato macchina
/// </summary>
/// <param name="newRec"></param>
/// <returns></returns>
public bool MicroStatoMacchinaUpsert(MicroStatoMacchinaModel newRec)
{
bool fatto = false;
using (var dbCtx = new MoonProContext(_configuration))
{
var actRec = dbCtx
.DbSetMicroStatoMacc
.Where(x => x.IdxMacchina == newRec.IdxMacchina)
.AsNoTracking()
.FirstOrDefault();
if (actRec == null)
{
dbCtx
.DbSetMicroStatoMacc
.Add(newRec);
}
else
{
actRec.IdxMicroStato = newRec.IdxMicroStato;
actRec.InizioStato = newRec.InizioStato;
actRec.Value = newRec.Value;
dbCtx.Entry(actRec).State = EntityState.Modified;
}
fatto = dbCtx.SaveChanges() > 0;
}
return fatto;
return dbResult;
}
/// <summary>
@@ -769,29 +671,28 @@ namespace MP.Data.Controllers
public async Task<bool> MicroStatoMacchinaUpsertAsync(MicroStatoMacchinaModel newRec)
{
bool fatto = false;
using (var dbCtx = new MoonProContext(_configuration))
{
var actRec = await dbCtx
using var dbCtx = new MoonProContext(_configuration);
var actRec = await dbCtx
.DbSetMicroStatoMacc
.Where(x => x.IdxMacchina == newRec.IdxMacchina)
.AsNoTracking()
.FirstOrDefaultAsync();
if (actRec == null)
{
dbCtx
.DbSetMicroStatoMacc
.Add(newRec);
}
else
{
actRec.IdxMicroStato = newRec.IdxMicroStato;
actRec.InizioStato = newRec.InizioStato;
actRec.Value = newRec.Value;
dbCtx.Entry(actRec).State = EntityState.Modified;
}
fatto = await dbCtx.SaveChangesAsync() > 0;
if (actRec == null)
{
dbCtx
.DbSetMicroStatoMacc
.Add(newRec);
}
else
{
actRec.IdxMicroStato = newRec.IdxMicroStato;
actRec.InizioStato = newRec.InizioStato;
actRec.Value = newRec.Value;
dbCtx.Entry(actRec).State = EntityState.Modified;
}
fatto = await dbCtx.SaveChangesAsync() > 0;
return fatto;
}