diff --git a/EgwCoreLib.Lux.Data/Repository/Production/IProductionBatchRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/IProductionBatchRepository.cs
index 29eab2b..60e1359 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/IProductionBatchRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/IProductionBatchRepository.cs
@@ -1,13 +1,15 @@
namespace EgwCoreLib.Lux.Data.Repository.Production
{
+ ///
+ /// Interfaccia per la gestione dei batch di produzione.
+ ///
public interface IProductionBatchRepository
{
-
///
- /// Creazione di un Batch con relativo Tag e info x creazione ODL correlati
+ /// Crea un nuovo batch con relativo tag e informazioni per la creazione degli ODL correlati.
///
- ///
- ///
+ /// Il batch da creare.
+ /// Il batch creato, o null se fallisce.
Task CreateAsync(ProductionBatchModel entity);
}
}
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/IProductionGroupRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/IProductionGroupRepository.cs
index 15796c4..d2663c7 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/IProductionGroupRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/IProductionGroupRepository.cs
@@ -1,11 +1,31 @@
namespace EgwCoreLib.Lux.Data.Repository.Production
{
+ ///
+ /// Interfaccia per la gestione dei gruppi di produzione.
+ ///
public interface IProductionGroupRepository
{
+ ///
+ /// Recupera l'elenco dei gruppi di produzione per un ordine specifico.
+ ///
+ /// L'identificatore della riga d'ordine.
+ /// L'elenco dei gruppi di produzione associati all'ordine.
Task> GetByOrderRowAsync(int orderRowID);
+ ///
+ /// Recupera l'elenco dei gruppi di produzione per stato dell'ordine.
+ ///
+ /// Lo stato richiesto della riga d'ordine.
+ /// L'elenco dei gruppi di produzione con lo stato specificato.
Task> GetByOrderStateAsync(OrderStates reqState);
+ ///
+ /// Aggiunge o aggiorna un record di Production Group dalla fase Balance.
+ ///
+ /// L'UID dell'articolo dell'offerta.
+ /// Il gruppo di produzione di riferimento.
+ /// I dati di bilanciamento serializzati in JSON.
+ /// True se l'operazione ha successo, false altrimenti.
Task UpsertBalanceAsync(string uID, string rGroup, string rawBalance);
}
}
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/IProductionItemRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/IProductionItemRepository.cs
index a6a555d..d64cb85 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/IProductionItemRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/IProductionItemRepository.cs
@@ -1,17 +1,39 @@
namespace EgwCoreLib.Lux.Data.Repository.Production
{
+ ///
+ /// Interfaccia per la gestione degli articoli di produzione.
+ ///
public interface IProductionItemRepository
{
- #region Public Methods
-
+ ///
+ /// Esegue l'assegnazione bulk degli articoli di produzione a un unico batch di produzione.
+ ///
+ /// L'identificatore della riga d'ordine.
+ /// L'identificatore del batch di produzione.
+ /// Il numero di articoli aggiornati.
Task BulkAssignProdBatchAsync(int orderRowId, int prodBatchId);
- Task BulkAssignProdGroupAsync(int OrderRowId, int ProdGroupId, Dictionary itemsToAssign);
+ ///
+ /// Esegue l'assegnazione bulk degli articoli di produzione a un unico gruppo di produzione.
+ ///
+ /// L'identificatore della riga d'ordine.
+ /// L'identificatore del gruppo di produzione.
+ /// Un dizionario che mappa i tag degli articoli ai tempi stimati.
+ /// Il numero di articoli aggiornati.
+ Task BulkAssignProdGroupAsync(int orderRowId, int prodGroupId, Dictionary itemsToAssign);
+ ///
+ /// Recupera l'elenco degli articoli di produzione per una riga d'ordine.
+ ///
+ /// L'identificatore della riga d'ordine.
+ /// L'elenco degli articoli di produzione.
Task> GetByOrderRowAsync(int orderRowId);
+ ///
+ /// Resetta le assegnazioni degli articoli di produzione per una riga d'ordine.
+ ///
+ /// L'identificatore della riga d'ordine.
+ /// Il numero di articoli resettati.
Task ResetAssignAsync(int orderRowID);
-
- #endregion Public Methods
}
}
\ No newline at end of file
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/IProductionOdlRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/IProductionOdlRepository.cs
index 2d76166..232aaa9 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/IProductionOdlRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/IProductionOdlRepository.cs
@@ -2,53 +2,57 @@
namespace EgwCoreLib.Lux.Data.Repository.Production
{
+ ///
+ /// Interfaccia per la gestione degli ODL (Ordini di Lavoro) di produzione.
+ ///
public interface IProductionOdlRepository
{
- #region Public Methods
-
///
- /// Metodo aggiunta record
+ /// Inserisce un nuovo record ODL nel database.
///
- ///
- ///
+ /// L'ODL da inserire.
+ /// True se l'inserimento ha successo, false altrimenti.
Task AddAsync(ProductionODLModel entity);
+ ///
+ /// Assegna in blocco gli articoli di produzione agli ODL corrispondenti.
+ ///
+ /// La lista degli ODL coinvolti.
+ /// Un dizionario che mappa le chiavi (fase, risorsa, macchina, indice) ai tag degli articoli.
+ /// Il numero di relazioni create.
Task AssignProdItem2OdlAsync(List dbList, Dictionary<(int phaseId, int resId, string machine, int index), List> dictParts);
///
- /// Insert sul DB di un elenco ODL con calcolo della relativa KEY a cui poter, successivamente, collegare i record child (items)
+ /// Inserisce in blocco un elenco di ODL nel database e calcola i tag automaticamente.
///
- ///
- ///
- ///
+ /// La lista degli OL da inserire.
+ /// La lista degli ODL con gli identificatori aggiornati.
Task> CreateAsync(List listOdl2ins);
///
- /// Recupero record ProdOdl dato Tag/uID
+ /// Recupera un record ODL dato il tag o l'UID.
///
- ///
- ///
+ /// Il tag o UID dell'ODL.
+ /// L'ODL corrispondente, o null se non esiste.
Task GetByUidAsync(string uID);
///
- /// Elenco PODL non assegnati
+ /// Recupera l'elenco degli ODL non ancora assegnati.
///
- ///
+ /// L'elenco degli ODL non assegnati.
Task> GetUnassignAsync();
///
- /// Elenco PODL non assegnati con struttura DTO appiattita
+ /// Recupera l'elenco degli ODL non assegnati con struttura DTO appiattita.
///
- ///
+ /// L'elenco dei DTO degli ODL non assegnati.
Task> GetUnassignOdlDtoAsync();
///
- /// Update generico record
+ /// Aggiorna un record ODL esistente nel database.
///
- ///
- ///
+ /// L'ODL aggiornato.
+ /// True se l'aggiornamento ha successo, false altrimenti.
Task UpdateAsync(ProductionODLModel entity);
-
- #endregion Public Methods
}
}
\ No newline at end of file
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/IProductionPlantRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/IProductionPlantRepository.cs
index 2f7a473..04069ae 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/IProductionPlantRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/IProductionPlantRepository.cs
@@ -1,7 +1,14 @@
namespace EgwCoreLib.Lux.Data.Repository.Production
{
+ ///
+ /// Interfaccia per la gestione degli impianti di produzione.
+ ///
public interface IProductionPlantRepository
{
+ ///
+ /// Recupera l'elenco di tutti gli impianti di produzione.
+ ///
+ /// L'elenco di tutti gli impianti.
Task> GetAllAsync();
}
}
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/ProductionBatchRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/ProductionBatchRepository.cs
index 7e2506b..63aac8c 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/ProductionBatchRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/ProductionBatchRepository.cs
@@ -14,11 +14,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
#region Public Methods
- ///
- /// Creazione di un Batch con relativo Tag e info x creazione ODL correlati
- ///
- ///
- ///
+ ///
public async Task CreateAsync(ProductionBatchModel entity)
{
await using var dbCtx = await CreateContextAsync();
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/ProductionGroupRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/ProductionGroupRepository.cs
index 28cfbd5..ae28f84 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/ProductionGroupRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/ProductionGroupRepository.cs
@@ -14,10 +14,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
#region Public Methods
- ///
- /// Elenco record ProductionGroup dato OrderRow
- ///
- ///
+ ///
public async Task> GetByOrderRowAsync(int orderRowID)
{
await using var dbCtx = await CreateContextAsync();
@@ -28,10 +25,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
.ToListAsync();
}
- ///
- /// Elenco record ProductionGroup dato Stato dell'OrderRow
- ///
- ///
+ ///
public async Task> GetByOrderStateAsync(OrderStates reqState)
{
await using var dbCtx = await CreateContextAsync();
@@ -43,12 +37,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
.ToListAsync();
}
- ///
- /// Add record di un singolo ProdGroup da fase Balance
- ///
- /// UID dell'item offerta di cui si è ricevuto l'oggetto Balance'
- /// Prod Group di riferimento
- ///
+ ///
public async Task UpsertBalanceAsync(string uID, string rGroup, string rawBalance)
{
bool answ = false;
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/ProductionItemRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/ProductionItemRepository.cs
index 1be9f61..5cccb62 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/ProductionItemRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/ProductionItemRepository.cs
@@ -12,12 +12,7 @@
#region Public Methods
- ///
- /// Esegue assegnazione bulk dei ProdItem ad un unico ProdBatch parent (per ora totale x RigaOrd)
- ///
- ///
- ///
- ///
+ ///
public async Task BulkAssignProdBatchAsync(int orderRowId, int prodBatchId)
{
await using var dbCtx = await CreateContextAsync();
@@ -42,13 +37,7 @@
return totUpd;
}
- ///
- /// Esegue assegnazione bulk dei ProdItem ad un unico ProdGroup parent
- ///
- ///
- ///
- ///
- ///
+ ///
public async Task BulkAssignProdGroupAsync(int orderRowId, int prodGroupId, Dictionary itemsToAssign)
{
await using var dbCtx = await CreateContextAsync();
@@ -77,6 +66,7 @@
return totUpd;
}
+ ///
public async Task> GetByOrderRowAsync(int orderRowId)
{
await using var dbCtx = await CreateContextAsync();
@@ -86,6 +76,7 @@
.ToListAsync();
}
+ ///
public async Task ResetAssignAsync(int orderRowID)
{
await using var dbCtx = await CreateContextAsync();
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/ProductionOdlRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/ProductionOdlRepository.cs
index 623f444..cfb7681 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/ProductionOdlRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/ProductionOdlRepository.cs
@@ -15,6 +15,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
#region Public Methods
+ ///
public async Task AddAsync(ProductionODLModel entity)
{
await using var dbCtx = await CreateContextAsync();
@@ -22,12 +23,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
return await dbCtx.SaveChangesAsync() > 0;
}
- ///
- /// Assegnazione in blocco degli item agli ODL corrispondenti
- ///
- ///
- ///
- ///
+ ///
public async Task AssignProdItem2OdlAsync(List dbList, Dictionary<(int phaseId, int resId, string machine, int index), List> dictParts)
{
int totalCreated = 0;
@@ -99,12 +95,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
return totalCreated;
}
- ///
- /// Insert sul DB di un elenco ODL con calcolo della relativa KEY a cui poter, successivamente, collegare i record child (items)
- ///
- ///
- ///
- ///
+ ///
public async Task> CreateAsync(List listOdl2ins)
{
await using var dbCtx = await CreateContextAsync();
@@ -147,11 +138,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
}
}
- ///
- /// Recupero record ProdOdl dato Tag/uID
- ///
- ///
- ///
+ ///
public async Task GetByUidAsync(string uID)
{
await using var dbCtx = await CreateContextAsync();
@@ -160,10 +147,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
.FirstOrDefaultAsync(x => x.OdlTag == uID);
}
- ///
- /// Elenco PODL non assegnati
- ///
- ///
+ ///
public async Task> GetUnassignAsync()
{
await using var dbCtx = await CreateContextAsync();
@@ -174,10 +158,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
.ToListAsync();
}
- ///
- /// Elenco PODL non assegnati con struttura DTO appiattita
- ///
- ///
+ ///
public async Task> GetUnassignOdlDtoAsync()
{
await using var dbCtx = await CreateContextAsync();
@@ -210,11 +191,7 @@ namespace EgwCoreLib.Lux.Data.Repository.Production
.ToListAsync();
}
- ///
- /// Update generico record
- ///
- ///
- ///
+ ///
public async Task UpdateAsync(ProductionODLModel entity)
{
await using var dbCtx = await CreateContextAsync();
diff --git a/EgwCoreLib.Lux.Data/Repository/Production/ProductionPlantRepository.cs b/EgwCoreLib.Lux.Data/Repository/Production/ProductionPlantRepository.cs
index b4423f8..8a4cc08 100644
--- a/EgwCoreLib.Lux.Data/Repository/Production/ProductionPlantRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Production/ProductionPlantRepository.cs
@@ -12,6 +12,7 @@
#region Public Methods
+ ///
public async Task> GetAllAsync()
{
await using var dbCtx = await CreateContextAsync();
diff --git a/EgwCoreLib.Lux.Data/Repository/Sales/CustomerRepository.cs b/EgwCoreLib.Lux.Data/Repository/Sales/CustomerRepository.cs
index 814896a..b6495e7 100644
--- a/EgwCoreLib.Lux.Data/Repository/Sales/CustomerRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Sales/CustomerRepository.cs
@@ -10,14 +10,13 @@
#endregion Public Constructors
- #region Public Methods
-
+///
public async Task> GetAllAsync()
{
await using var dbCtx = await CreateContextAsync();
return await dbCtx.DbSetCustomer
- .AsNoTracking()
- .ToListAsync();
+ .AsNoTracking()
+ .ToListAsync();
}
#endregion Public Methods
diff --git a/EgwCoreLib.Lux.Data/Repository/Sales/DealerRepository.cs b/EgwCoreLib.Lux.Data/Repository/Sales/DealerRepository.cs
index 63abac4..c3910fd 100644
--- a/EgwCoreLib.Lux.Data/Repository/Sales/DealerRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Sales/DealerRepository.cs
@@ -11,13 +11,13 @@
#endregion Public Constructors
#region Public Methods
-
+ ///
public async Task> GetAllAsync()
{
await using var dbCtx = await CreateContextAsync();
return await dbCtx.DbSetDealer
- .AsNoTracking()
- .ToListAsync();
+ .AsNoTracking()
+ .ToListAsync();
}
#endregion Public Methods
diff --git a/EgwCoreLib.Lux.Data/Repository/Sales/ICustomerRepository.cs b/EgwCoreLib.Lux.Data/Repository/Sales/ICustomerRepository.cs
index 42ec38d..0a8bbe3 100644
--- a/EgwCoreLib.Lux.Data/Repository/Sales/ICustomerRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Sales/ICustomerRepository.cs
@@ -1,7 +1,14 @@
namespace EgwCoreLib.Lux.Data.Repository.Sales
{
+ ///
+ /// Interfaccia per la gestione dei clienti.
+ ///
public interface ICustomerRepository
{
+ ///
+ /// Recupera l'elenco di tutti i clienti.
+ ///
+ /// L'elenco di tutti i clienti.
Task> GetAllAsync();
}
}
diff --git a/EgwCoreLib.Lux.Data/Repository/Sales/IDealerRepository.cs b/EgwCoreLib.Lux.Data/Repository/Sales/IDealerRepository.cs
index ead4873..06347ee 100644
--- a/EgwCoreLib.Lux.Data/Repository/Sales/IDealerRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Sales/IDealerRepository.cs
@@ -1,7 +1,14 @@
namespace EgwCoreLib.Lux.Data.Repository.Sales
{
+ ///
+ /// Interfaccia per la gestione dei rivenditori.
+ ///
public interface IDealerRepository
{
+ ///
+ /// Recupera l'elenco di tutti i rivenditori.
+ ///
+ /// L'elenco di tutti i rivenditori.
Task> GetAllAsync();
}
}
diff --git a/EgwCoreLib.Lux.Data/Repository/Sales/IOfferRepository.cs b/EgwCoreLib.Lux.Data/Repository/Sales/IOfferRepository.cs
index f91b0c7..abd5039 100644
--- a/EgwCoreLib.Lux.Data/Repository/Sales/IOfferRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Sales/IOfferRepository.cs
@@ -1,34 +1,89 @@
namespace EgwCoreLib.Lux.Data.Repository.Sales
{
+ ///
+ /// Interfaccia per la gestione delle offerte.
+ ///
public interface IOfferRepository : IBaseRepository
{
- #region Public Methods
-
+ ///
+ /// Inserisce una nuova offerta nel database.
+ ///
+ /// L'offerta da inserire.
+ /// True se l'inserimento ha successo, false altrimenti.
Task AddAsync(OfferModel entity);
+ ///
+ /// Segna come scadute le offerte la cui data di validità è passata e che sono ancora aperte.
+ ///
+ /// True se almeno un'offerta è stata aggiornata, false altrimenti.
Task CheckExpiredAsync();
+ ///
+ /// Esegue il cloning completo di un'Offerta e di tutte le relative righe.
+ ///
+ /// L'offerta da clonare.
+ /// True se il cloning ha successo, false altrimenti.
Task CloneAsync(OfferModel rec2clone);
+ ///
+ /// Elimina un'offerta dal database.
+ ///
+ /// L'offerta da eliminare.
+ /// True se l'eliminazione ha successo, false altrimenti.
Task DeleteAsync(OfferModel entity);
+ ///
+ /// Recupera l'elenco di tutte le offerte.
+ ///
+ /// L'elenco di tutte le offerte con clienti, rivenditori e righe associate.
Task> GetAllAsync();
+ ///
+ /// Recupera l'elenco degli elementi BOM (Bill of Materials) utilizzati nelle offerte.
+ ///
+ /// L'elenco degli elementi BOM.
Task> GetBomItemsAsync();
+ ///
+ /// Recupera un'offerta per il suo identificatore.
+ ///
+ /// L'identificatore dell'offerta.
+ /// L'offerta corrispondente, o null se non esiste.
Task GetByIdAsync(int recId);
+ ///
+ /// Recupera le offerte inserite in un intervallo di date specifico.
+ ///
+ /// La data di inizio del periodo.
+ /// La data di fine del periodo.
+ /// L'elenco delle offerte nell'intervallo specificato.
Task> GetFiltAsync(DateTime inizio, DateTime fine);
+ ///
+ /// Recupera l'elenco dei gruppi di articoli.
+ ///
+ /// L'elenco dei gruppi di articoli.
Task> GetItemGroupsAsync();
+ ///
+ /// Recupera le righe dell'offerta per un'offerta specifica.
+ ///
+ /// L'identificatore dell'offerta.
+ /// L'elenco delle righe dell'offerta.
Task> GetRowsAsync(int recId);
+ ///
+ /// Aggiorna in batch le righe di un'offerta.
+ ///
+ /// L'elenco delle righe da aggiornare.
+ /// True se l'aggiornamento ha successo, false altrimenti.
Task SaveRowsAsync(List rows);
+ ///
+ /// Aggiorna un'offerta esistente nel database.
+ ///
+ /// L'offerta aggiornata.
+ /// True se l'aggiornamento ha successo, false altrimenti.
Task UpdateAsync(OfferModel entity);
-
-
- #endregion Public Methods
}
}
\ No newline at end of file
diff --git a/EgwCoreLib.Lux.Data/Repository/Sales/OfferRepository.cs b/EgwCoreLib.Lux.Data/Repository/Sales/OfferRepository.cs
index a4d6866..629ff70 100644
--- a/EgwCoreLib.Lux.Data/Repository/Sales/OfferRepository.cs
+++ b/EgwCoreLib.Lux.Data/Repository/Sales/OfferRepository.cs
@@ -12,6 +12,7 @@
#region Public Methods
+ ///
public async Task AddAsync(OfferModel entity)
{
await using var dbCtx = await CreateContextAsync();
@@ -19,6 +20,7 @@
return await dbCtx.SaveChangesAsync() > 0;
}
+ ///
public async Task CheckExpiredAsync()
{
await using var dbCtx = await CreateContextAsync();
@@ -47,11 +49,7 @@
}
}
- ///
- /// Esegue il cloning completo di un Offerta e di TUTTE le relative righe...
- ///
- ///
- ///
+ ///
public async Task CloneAsync(OfferModel rec2clone)
{
await using var dbCtx = await CreateContextAsync();
@@ -150,6 +148,7 @@
}
}
+ ///
public async Task DeleteAsync(OfferModel entity)
{
await using var dbCtx = await CreateContextAsync();
@@ -157,6 +156,7 @@
return await dbCtx.SaveChangesAsync() > 0;
}
+ ///
public async Task> GetAllAsync()
{
await using var dbCtx = await CreateContextAsync();
@@ -168,6 +168,7 @@
.ToListAsync();
}
+ ///
public async Task> GetBomItemsAsync()
{
await using var dbCtx = await CreateContextAsync();
@@ -176,12 +177,14 @@
.ToListAsync();
}
+ ///
public async Task GetByIdAsync(int recId)
{
await using var dbCtx = await CreateContextAsync();
return await dbCtx.DbSetOffer.FirstOrDefaultAsync(x => x.OfferID == recId);
}
+ ///
public async Task> GetFiltAsync(DateTime inizio, DateTime fine)
{
await using var dbCtx = await CreateContextAsync();
@@ -194,12 +197,14 @@
.ToListAsync();
}
+ ///
public async Task> GetItemGroupsAsync()
{
await using var dbCtx = await CreateContextAsync();
return await dbCtx.DbSetItemGroup.ToListAsync();
}
+ ///
public async Task> GetRowsAsync(int recId)
{
await using var dbCtx = await CreateContextAsync();
@@ -208,6 +213,7 @@
.ToListAsync();
}
+ ///
public async Task SaveRowsAsync(List rows)
{
// Add validation for null or empty list
@@ -236,6 +242,7 @@
}
}
+ ///
public async Task UpdateAsync(OfferModel entity)
{
await using var dbCtx = await CreateContextAsync();