diff --git a/EgtBEAMWALL.DataLayer/Controllers/MaterialsController.cs b/EgtBEAMWALL.DataLayer/Controllers/MaterialsController.cs index 701c1fe8..40e76a78 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/MaterialsController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/MaterialsController.cs @@ -204,13 +204,13 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// /// - public bool Upsert(Core.MaterialM coreItem) + public int Upsert(Core.MaterialM coreItem) { - bool fatto = false; + int newIdx = 0; // converto MaterialModel updItem = ConvToModel(coreItem); - fatto = Upsert(updItem); - return fatto; + newIdx = Upsert(updItem); + return newIdx; } /// @@ -218,17 +218,17 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// /// - public bool Upsert(MaterialModel updItem) + public int Upsert(MaterialModel updItem) { - bool fatto = false; + int newIdx = 0; using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { try { var item2update = localDbCtx .MaterialsList - .Where(x => x.MatId == updItem.MatId - || x.MatCloudId == updItem.MatCloudId + .Where(x => (updItem.MatId > 0 && x.MatId == updItem.MatId) + || (updItem.MatCloudId > 0 && x.MatCloudId == updItem.MatCloudId) || (x.MatCode == updItem.MatCode && x.WMm == updItem.WMm && x.HMm == updItem.HMm && x.LMm == updItem.LMm)) .SingleOrDefault(); @@ -236,21 +236,21 @@ namespace EgtBEAMWALL.DataLayer.Controllers { // update, vers 1... localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem); - // Commit changes - localDbCtx.SaveChanges(); - fatto = true; } else { localDbCtx.MaterialsList.Add(updItem); } + // Commit changes + localDbCtx.SaveChanges(); + newIdx = item2update.MatId; } catch (Exception exc) { Log.Error($"EXCEPTION on Materials.Upsert: {Environment.NewLine}{exc}"); } } - return fatto; + return newIdx; } #endregion Public Methods diff --git a/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs b/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs index b25d8a1c..fe7b078d 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs @@ -258,16 +258,16 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// /// - public bool Upsert(RawItemModel updItem) + public int Upsert(RawItemModel updItem) { - bool fatto = false; + int newIdx = 0; using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { try { var item2update = localDbCtx .RawItemList - .Where(x => x.RawItemId == updItem.RawItemId + .Where(x => (updItem.RawItemId>0 && x.RawItemId == updItem.RawItemId) || (x.MatId == updItem.MatId && x.WMm == updItem.WMm && x.HMm == updItem.HMm && x.LMm == updItem.LMm)) .SingleOrDefault(); @@ -275,21 +275,21 @@ namespace EgtBEAMWALL.DataLayer.Controllers { // update, vers 1... localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem); - // Commit changes - localDbCtx.SaveChanges(); - fatto = true; } else { localDbCtx.RawItemList.Add(updItem); } + // Commit changes + localDbCtx.SaveChanges(); + newIdx = item2update.RawItemId; } catch (Exception exc) { Log.Error($"EXCEPTION on RawItems.Upsert: {Environment.NewLine}{exc}"); } } - return fatto; + return newIdx; } /// @@ -297,13 +297,13 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// /// - public bool Upsert(Core.RawPartM coreItem) + public int Upsert(Core.RawPartM coreItem) { - bool fatto = false; + int newIdx = 0; // converto RawItemModel updItem = ConvToModel(coreItem); - fatto = Upsert(updItem); - return fatto; + newIdx = Upsert(updItem); + return newIdx; } #endregion Public Methods