From 088bae8052fbe744591c3cf4b4f08d91132060ca Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 29 Apr 2024 18:25:11 +0200 Subject: [PATCH] DataLayer: - fix id prod/projCloudId --- .../Controllers/LogMachineController.cs | 9 +- .../Controllers/PartController .cs | 4 +- .../Controllers/ProjController.cs | 24 ++-- .../DatabaseModels/LogMachineModel.cs | 12 +- .../EgtBEAMWALL.DataLayer.csproj | 7 + ...202404290906337_UpdateLogMachineTable03.cs | 4 +- ...620416_UpdateLogMachineTable04.Designer.cs | 29 ++++ ...202404291620416_UpdateLogMachineTable04.cs | 20 +++ ...2404291620416_UpdateLogMachineTable04.resx | 126 ++++++++++++++++++ 9 files changed, 212 insertions(+), 23 deletions(-) create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.Designer.cs create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.cs create mode 100644 EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.resx diff --git a/EgtBEAMWALL.DataLayer/Controllers/LogMachineController.cs b/EgtBEAMWALL.DataLayer/Controllers/LogMachineController.cs index 4a95a066..5e709487 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/LogMachineController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/LogMachineController.cs @@ -30,7 +30,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers { DtEvent = currRec.DtEvent, EvType = (EgwProxy.MagMan.MachLogTypes)currRec.EvType, - ProjCloudId = currRec.ProjId, + ProjCloudId = currRec.ProjCloudId, SupervId = currRec.SupervId, VarValue = currRec.VarValue }; @@ -45,7 +45,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers public LogMachineModel ConvertFromCore(Core.MachLog coreMacLog) { int projCloudId = 0; - // calcolo projCloudId da ProjId... + // calcolo projCloudId da ProdId... using (var localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) { // Add to database @@ -65,7 +65,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers DtEvent = coreMacLog.AlarmDateTime, SupervId = coreMacLog.VarAddress, VarValue = coreMacLog.VarValue, - ProjId = projCloudId + ProdId = coreMacLog.ProdId, + ProjCloudId = projCloudId }; } return answ; @@ -78,7 +79,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// public Core.MachLog ConvertToCore(LogMachineModel dbLog) { - var newRecord = (Core.MachLog)Core.MachLog.CreateMachLog(dbLog.EvType, dbLog.DtEvent, dbLog.VarValue, dbLog.ProjId, dbLog.SupervId); + var newRecord = (Core.MachLog)Core.MachLog.CreateMachLog(dbLog.EvType, dbLog.DtEvent, dbLog.VarValue, dbLog.ProdId, dbLog.SupervId); return newRecord; } diff --git a/EgtBEAMWALL.DataLayer/Controllers/PartController .cs b/EgtBEAMWALL.DataLayer/Controllers/PartController .cs index 0e7e685f..f036ef2b 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/PartController .cs +++ b/EgtBEAMWALL.DataLayer/Controllers/PartController .cs @@ -405,7 +405,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers #region Protected Methods /// - /// Get BtlPartDBId by ProjId + PDN + /// Get BtlPartDBId by ProdId + PDN /// /// /// @@ -430,7 +430,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } /// - /// Get BtlPartDBId by ProjId + BtlPartId + /// Get BtlPartDBId by ProdId + BtlPartId /// /// /// diff --git a/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs b/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs index 0ee3c148..0dcfe301 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/ProjController.cs @@ -88,7 +88,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// Search for already imported BTL from FileName (only) - /// =0 : NOT found >0 : ProjId (already present) for overwrite + /// =0 : NOT found >0 : ProdId (already present) for overwrite /// /// /// @@ -129,7 +129,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } /// - /// Delete Proj logically / on DB by ProjId + /// Delete Proj logically / on DB by ProdId /// /// /// @@ -256,7 +256,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } /// - /// Get record by ProjId + /// Get record by ProdId /// /// /// @@ -274,7 +274,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } /// - /// Get record by ProjId converted + /// Get record by ProdId converted /// /// /// @@ -530,7 +530,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers return nextId; } - /// Manage Lock by ProjId (proj & prod) ID + /// Manage Lock by ProdId (proj & prod) ID /// Proj Stato Lock da impostare User ID / Key number public Core.ProjFileM LockByProjId(int ProjId, bool Locked, string UserKey = "USER01") @@ -653,7 +653,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } else { - string errMessage = $"ERROR on Proj.Update: req item was not found | ProjId {updItem.ProjId} | ProjDbId {updItem.ProjDbId} | ProdDbId {updItem.ProdDbId}"; + string errMessage = $"ERROR on Proj.Update: req item was not found | ProdId {updItem.ProjId} | ProjDbId {updItem.ProjDbId} | ProdDbId {updItem.ProdDbId}"; Console.WriteLine(errMessage); Log.Error(errMessage); } @@ -745,7 +745,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } else { - string errMessage = $"ERROR on Proj.UpdateBtlParts: req item was not found | ProjId {ProjId} | BtlPartList {BtlPartList.Count} items"; + string errMessage = $"ERROR on Proj.UpdateBtlParts: req item was not found | ProdId {ProjId} | BtlPartList {BtlPartList.Count} items"; Console.WriteLine(errMessage); Log.Error(errMessage); } @@ -788,7 +788,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } else { - string errMessage = $"ERROR on Proj.UpdateDescription: req item was not found | ProjId {ProjId} | Description {Description}"; + string errMessage = $"ERROR on Proj.UpdateDescription: req item was not found | ProdId {ProjId} | Description {Description}"; Console.WriteLine(errMessage); Log.Error(errMessage); } @@ -833,7 +833,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers // se ne ho esattamente 1 nel DB allora DEVE essere il record Parent if (duplicateList.Count == 1) { - // verifico se ProjId variato + // verifico se ProdId variato if (!duplicateList[0].ProjId.Equals(currData.ProjId)) { // in questo caso ho il PRIMO duplicato @@ -879,7 +879,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } else { - string errMessage = $"ERROR on Proj.UpdateInfo: req item was not found | ProjId {ProjId} | Description {BTLFileName} | ListName {ListName} | DtExported {DtExported} | PType {PType} | Machine {Machine}"; + string errMessage = $"ERROR on Proj.UpdateInfo: req item was not found | ProdId {ProjId} | Description {BTLFileName} | ListName {ListName} | DtExported {DtExported} | PType {PType} | Machine {Machine}"; Console.WriteLine(errMessage); Log.Error(errMessage); } @@ -915,7 +915,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } else { - string errMessage = $"ERROR on Proj.UpdateListName: req item was not found | ProjId {ProjId} | ListName {ListName}"; + string errMessage = $"ERROR on Proj.UpdateListName: req item was not found | ProdId {ProjId} | ListName {ListName}"; Console.WriteLine(errMessage); Log.Error(errMessage); } @@ -958,7 +958,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers } else { - string errMessage = $"ERROR on Proj.UpdateMachine: req item was not found | ProjId {ProjId} | Machine {Machine}"; + string errMessage = $"ERROR on Proj.UpdateMachine: req item was not found | ProdId {ProjId} | Machine {Machine}"; Console.WriteLine(errMessage); Log.Error(errMessage); } diff --git a/EgtBEAMWALL.DataLayer/DatabaseModels/LogMachineModel.cs b/EgtBEAMWALL.DataLayer/DatabaseModels/LogMachineModel.cs index ebc8e243..0fd39e83 100644 --- a/EgtBEAMWALL.DataLayer/DatabaseModels/LogMachineModel.cs +++ b/EgtBEAMWALL.DataLayer/DatabaseModels/LogMachineModel.cs @@ -34,10 +34,16 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels public DateTime DtEvent { get; set; } = DateTime.Now; /// - /// Key progetto (DB locale) + /// Key prod attivo (DB locale) /// - [Column("ProjId")] - public int ProjId { get; set; } = 0; + [Column("ProdId")] + public int ProdId { get; set; } = 0; + + /// + /// Key progetto (cloud) + /// + [Column("ProjCloudId")] + public int ProjCloudId { get; set; } = 0; /// /// ID Supervisore (Indirizzo VAR) diff --git a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj index 3115dc46..cfbc89aa 100644 --- a/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj +++ b/EgtBEAMWALL.DataLayer/EgtBEAMWALL.DataLayer.csproj @@ -256,6 +256,10 @@ 202404290906337_UpdateLogMachineTable03.cs + + + 202404291620416_UpdateLogMachineTable04.cs + @@ -334,6 +338,9 @@ 202404290906337_UpdateLogMachineTable03.cs + + 202404291620416_UpdateLogMachineTable04.cs + diff --git a/EgtBEAMWALL.DataLayer/Migrations/202404290906337_UpdateLogMachineTable03.cs b/EgtBEAMWALL.DataLayer/Migrations/202404290906337_UpdateLogMachineTable03.cs index b8bf8103..6c2a6014 100644 --- a/EgtBEAMWALL.DataLayer/Migrations/202404290906337_UpdateLogMachineTable03.cs +++ b/EgtBEAMWALL.DataLayer/Migrations/202404290906337_UpdateLogMachineTable03.cs @@ -7,7 +7,7 @@ { public override void Up() { - AddColumn("dbo.LogMachine", "ProjId", c => c.Int(nullable: false)); + AddColumn("dbo.LogMachine", "ProdId", c => c.Int(nullable: false)); RenameColumn("dbo.LogMachine", "VarAddress", "SupervId"); } @@ -15,7 +15,7 @@ { RenameColumn("dbo.LogMachine", "SupervId", "VarAddress"); - DropColumn("dbo.LogMachine", "ProjId"); + DropColumn("dbo.LogMachine", "ProdId"); } } } diff --git a/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.Designer.cs b/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.Designer.cs new file mode 100644 index 00000000..fd5d76ea --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.Designer.cs @@ -0,0 +1,29 @@ +// +namespace EgtBEAMWALL.DataLayer.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.4.4")] + public sealed partial class UpdateLogMachineTable04 : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(UpdateLogMachineTable04)); + + string IMigrationMetadata.Id + { + get { return "202404291620416_UpdateLogMachineTable04"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.cs b/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.cs new file mode 100644 index 00000000..5ce2f8be --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.cs @@ -0,0 +1,20 @@ +namespace EgtBEAMWALL.DataLayer.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class UpdateLogMachineTable04 : DbMigration + { + public override void Up() + { + AddColumn("dbo.LogMachine", "ProjCloudId", c => c.Int(nullable: false)); + RenameColumn("dbo.LogMachine", "ProjId", "ProdId"); + } + + public override void Down() + { + RenameColumn("dbo.LogMachine", "ProdId", "ProjId"); + DropColumn("dbo.LogMachine", "ProjCloudId"); + } + } +} diff --git a/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.resx b/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.resx new file mode 100644 index 00000000..cc21a305 --- /dev/null +++ b/EgtBEAMWALL.DataLayer/Migrations/202404291620416_UpdateLogMachineTable04.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file