diff --git a/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs b/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs
index 28b51356..03046818 100644
--- a/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs
+++ b/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs
@@ -28,6 +28,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
bool servOk = commLib.CheckRemote();
Log.Info($"Avviato MagmanController | server: {ServerAddress} | timeout: standard (500ms)| CheckRemote OK: {servOk}");
}
+
///
/// Init controller gestione MagmanSync
///
@@ -252,14 +253,56 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return answ;
}
+ ///
+ /// Esegue sync forzato risorse (Materiali + RawItem):
+ /// - download + sync (locale)
+ ///
+ ///
+ public bool ResourcesForceSyncAll()
+ {
+ bool answ = false;
+ // verifico server ok
+ bool servOk = commLib.CheckRemote();
+ if (servOk)
+ {
+ using (MaterialsController matDbContr = new MaterialsController())
+ {
+ using (RawItemsController rawItemDbContr = new RawItemsController())
+ {
+ // elenco di tutti i materiali
+ var matListAll = commLib.MaterialsGet();
+ // ciclo 1:1 materiali + inventario
+ foreach (var mat in matListAll)
+ {
+ List list2merge = commLib.InventoryGet(mat.MatCloudId);
+ // ciclo sui materiali...
+ if (list2merge != null)
+ {
+ foreach (var item in list2merge)
+ {
+ _ = matDbContr.Insert(MaterialsController.ConvToModel(item));
+ // ora processo 1:1 gli items...
+ foreach (var rawItem in item.ItemList)
+ {
+ rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return answ;
+ }
+
///
/// Esegue sync risorse (Materiali + RawItem) dato elenco MatId:
/// - upload + sync (cloud)
/// - download + sync (locale)
///
///
- /// Elenco Id dei materiali (DB LOCALE):
- /// saranno inviati x sync (con quantità sovrascritta) SOLO SE RawItemCloudId == 0
+ /// Elenco Id dei materiali (DB LOCALE): saranno inviati x sync (con quantità sovrascritta)
+ /// SOLO SE RawItemCloudId == 0
///
///
public bool ResourcesSync(List MatIdList)
@@ -371,8 +414,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// - download + sync (locale)
///
///
- /// Elenco Id dei materiali (DB LOCALE):
- /// saranno inviati x sync (con quantità sovrascritta) SOLO SE RawItemCloudId == 0
+ /// Elenco Id dei materiali (DB LOCALE): saranno inviati x sync (con quantità sovrascritta)
+ /// SOLO SE RawItemCloudId == 0
///
///
public async Task ResourcesSyncAsync(List MatIdList)
@@ -404,8 +447,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// - download + sync (locale)
///
///
- /// Elenco item dal DB locale
- /// saranno inviati x sync (con quantità sovrascritta) SOLO SE RawItemCloudId == 0
+ /// Elenco item dal DB locale saranno inviati x sync (con quantità sovrascritta) SOLO SE
+ /// RawItemCloudId == 0
///
///
public async Task ResourcesSyncAsync(List itemList)