Merge remote-tracking branch 'gitlab.seriate/DataLayer' into feature/NewWarehouseTest

This commit is contained in:
Emmanuele Sassi
2024-04-04 12:47:54 +02:00
4 changed files with 58 additions and 10 deletions
@@ -45,7 +45,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
AliasDTO answ = new AliasDTO()
{
ValOrig = currRec.ValueOriginal,
ValAlias = currRec.ValueAlias
ValAlias = currRec.ValueAlias,
IsActive = true
};
return answ;
}
@@ -233,6 +234,43 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return fatto;
}
/// <summary>
/// Eliminazione eventuali record Alias nella lista (se presenti)
/// </summary>
/// <param name="updList"></param>
/// <returns></returns>
public bool DeleteList(List<AliasModel> updList)
{
bool fatto = false;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
try
{
foreach (var updItem in updList)
{
var item2update = localDbCtx
.AliasList
.Where(x => x.Family == updItem.Family && x.ValueOriginal.ToLower() == updItem.ValueOriginal.ToLower())
.SingleOrDefault();
if (item2update != null)
{
localDbCtx.AliasList.Remove(updItem);
}
}
// Commit changes
localDbCtx.SaveChanges();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"EXCEPTION on Alias.DeleteList: {Environment.NewLine}{exc}");
}
}
return fatto;
}
#endregion Public Methods
#region Private Fields
@@ -94,8 +94,10 @@ namespace EgtBEAMWALL.DataLayer.Controllers
try
{
List<AliasDTO> list2merge = commLib.AliasGet();
// effettuo conversione DTO --> model + merge
List<AliasModel> list2MergeDb = list2merge.Select(x => AliasController.ConvToModel(x, "MatCode")).ToList();
// 2024.04.04 effettuo conversione DTO --> model + merge x attivi
List<AliasModel> list2MergeDb = list2merge.Where(x => x.IsActive).Select(x => AliasController.ConvToModel(x, "MatCode")).ToList();
// 2024.04.04 prendo quelli con cancellazione logica che devo poi eliminare in locale...
List<AliasModel> list2DeleteDb = list2merge.Where(x => x.IsActive == false).Select(x => AliasController.ConvToModel(x, "MatCode")).ToList();
// ciclo...
if (list2MergeDb == null)
{
@@ -103,8 +105,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
else
{
// inizio con eventuale eliminazione...
var deleteOk = dbContr.DeleteList(list2DeleteDb);
// ora merge
var updateOk = dbContr.UpsertList(list2MergeDb);
if (updateOk)
if (updateOk || deleteOk)
{
// in primis leggo l'elenco materiali dal DB locale
List<AliasModel> listDb = dbContr.GetFilt("MatCode");
@@ -157,17 +162,22 @@ namespace EgtBEAMWALL.DataLayer.Controllers
try
{
List<AliasDTO> list2merge = await commLib.AliasGetAsync();
// effettuo conversione DTO --> model + merge
List<AliasModel> list2MergeDb = list2merge.Select(x => AliasController.ConvToModel(x, "MatCode")).ToList();
// 2024.04.04 effettuo conversione DTO --> model + merge x attivi
List<AliasModel> list2MergeDb = list2merge.Where(x => x.IsActive).Select(x => AliasController.ConvToModel(x, "MatCode")).ToList();
// 2024.04.04 prendo quelli con cancellazione logica che devo poi eliminare in locale...
List<AliasModel> list2DeleteDb = list2merge.Where(x => x.IsActive == false).Select(x => AliasController.ConvToModel(x, "MatCode")).ToList();
// ciclo...
if (list2MergeDb == null)
if (list2merge == null)
{
answ = SyncResult.ERR_AliasMatEmpty;
}
else
{
// inizio con eventuale eliminazione...
var deleteOk = dbContr.DeleteList(list2DeleteDb);
// ora merge
var updateOk = dbContr.UpsertList(list2MergeDb);
if (updateOk)
if (updateOk || deleteOk)
{
// in primis leggo l'elenco materiali dal DB locale
List<AliasModel> listDb = dbContr.GetFilt("MatCode");
@@ -47,7 +47,7 @@
<HintPath>..\ExtLibs\EgtWPFLib5.dll</HintPath>
</Reference>
<Reference Include="EgwProxy.MagMan, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\EgwProxy.MagMan.1.0.2403.2611\lib\EgwProxy.MagMan.dll</HintPath>
<HintPath>..\packages\EgwProxy.MagMan.1.0.2404.411\lib\EgwProxy.MagMan.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
+1 -1
View File
@@ -2,7 +2,7 @@
<packages>
<package id="BouncyCastle" version="1.8.5" targetFramework="net472" />
<package id="DotNetZip" version="1.16.0" targetFramework="net472" />
<package id="EgwProxy.MagMan" version="1.0.2403.2611" targetFramework="net472" />
<package id="EgwProxy.MagMan" version="1.0.2404.411" targetFramework="net472" />
<package id="EntityFramework" version="6.4.4" targetFramework="net452" />
<package id="Google.Protobuf" version="3.21.9" targetFramework="net472" />
<package id="K4os.Compression.LZ4" version="1.3.6" targetFramework="net472" />