From 7a62ecbbd5937781a5ca8bc9b87cda24bb8fba66 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 15 Jan 2024 14:47:13 +0100 Subject: [PATCH] Fix migrazione dati key INT --- .../Controllers/MTAdminController.cs | 4 +-- MagMan.Data.Admin/DbAdmin.cs | 16 +++++----- MagMan.Data.Admin/DbConfig.cs | 6 ++++ MagMan.Data.Admin/DbModels/AuthKeyModel.cs | 4 +-- MagMan.Data.Admin/DbModels/MachineModel.cs | 2 +- ...0240115132229_MachineKeyAndDb.Designer.cs} | 12 ++++---- ...b.cs => 20240115132229_MachineKeyAndDb.cs} | 30 ++++++++++++++++--- .../MultiTenantContextModelSnapshot.cs | 10 +++---- 8 files changed, 55 insertions(+), 29 deletions(-) rename MagMan.Data.Admin/Migrations/{20240115100646_MachineKeyAndDb.Designer.cs => 20240115132229_MachineKeyAndDb.Designer.cs} (93%) rename MagMan.Data.Admin/Migrations/{20240115100646_MachineKeyAndDb.cs => 20240115132229_MachineKeyAndDb.cs} (61%) diff --git a/MagMan.Data.Admin/Controllers/MTAdminController.cs b/MagMan.Data.Admin/Controllers/MTAdminController.cs index 98a66bc..93860f7 100644 --- a/MagMan.Data.Admin/Controllers/MTAdminController.cs +++ b/MagMan.Data.Admin/Controllers/MTAdminController.cs @@ -72,7 +72,7 @@ namespace MagMan.Data.Admin.Controllers .DbSetAuthKey .Where(x => CustomerId == 0 || x.CustomerID == CustomerId) .Include(c => c.CustomerNav) - .OrderBy(x => x.KeyName) + .OrderBy(x => x.KeyNum) .ToList(); } return dbResult; @@ -96,7 +96,7 @@ namespace MagMan.Data.Admin.Controllers .FirstOrDefault(); if (currData != null) { - currData.KeyName = updItem.KeyName; + currData.KeyNum = updItem.KeyNum; currData.KeyValue = updItem.KeyValue; currData.Note = updItem.Note; currData.CustomerID = updItem.CustomerID; diff --git a/MagMan.Data.Admin/DbAdmin.cs b/MagMan.Data.Admin/DbAdmin.cs index 7ac8e09..5d33b11 100644 --- a/MagMan.Data.Admin/DbAdmin.cs +++ b/MagMan.Data.Admin/DbAdmin.cs @@ -2,6 +2,7 @@ using NLog; using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -62,28 +63,29 @@ namespace MagMan.Data.Admin return answ; } - public static bool CheckCreateCustDb(string nKeyMain) + public static bool CheckCreateCustDb(int nKeyMain) { bool answ = false; - string dbName = $"MagMan_{nKeyMain}"; + string dbName = $"MagMan_{nKeyMain:000000}"; using (ServerAdminContext adbCtx = new ServerAdminContext()) { // ricerca DB... - string sqlCommand = $"SHOW DATABASES LIKE '%{nKeyMain}';"; + string sqlCommand = $"SHOW DATABASES;"; var searchDb = adbCtx .DbList .FromSqlRaw(sqlCommand) - .FirstOrDefault(); - // se trovato ok + .ToList(); + // se trovato qualcosa procedo if (searchDb != null) { - answ = true; + var rigaDb = searchDb.Where(x => x.Database.Contains(dbName, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault(); + answ = rigaDb != null; } // altrimenti crea if (!answ) { // creo DB - sqlCommand = $"CREATE DATABASE [IF NOT EXISTS] MagMan_{nKeyMain};"; + sqlCommand = $"CREATE DATABASE IF NOT EXISTS {dbName};"; adbCtx.Database.ExecuteSqlRaw(sqlCommand); } } diff --git a/MagMan.Data.Admin/DbConfig.cs b/MagMan.Data.Admin/DbConfig.cs index 6cc29d8..222908b 100644 --- a/MagMan.Data.Admin/DbConfig.cs +++ b/MagMan.Data.Admin/DbConfig.cs @@ -45,6 +45,12 @@ namespace MagMan.Data.Admin return DbAdmin.CheckCreateUser(DATABASE_USER, DATABASE_PWD, DATABASE_NAME); } + public static bool CheckCustDb(int masterKey) + { + // esecuzione script di install locale + return DbAdmin.CheckCreateCustDb(masterKey); + } + public static bool ExecMigrationIdentity() { // esecuzione migrazione diff --git a/MagMan.Data.Admin/DbModels/AuthKeyModel.cs b/MagMan.Data.Admin/DbModels/AuthKeyModel.cs index e223381..a5cf791 100644 --- a/MagMan.Data.Admin/DbModels/AuthKeyModel.cs +++ b/MagMan.Data.Admin/DbModels/AuthKeyModel.cs @@ -26,9 +26,9 @@ namespace MagMan.Data.Admin.DbModels public int CustomerID { get; set; } = 0; /// - /// Nome + /// Numero chiave /// - public string KeyName { get; set; } = ""; + public int KeyNum { get; set; } = 0; /// /// Nome diff --git a/MagMan.Data.Admin/DbModels/MachineModel.cs b/MagMan.Data.Admin/DbModels/MachineModel.cs index 619b47e..6bde5ee 100644 --- a/MagMan.Data.Admin/DbModels/MachineModel.cs +++ b/MagMan.Data.Admin/DbModels/MachineModel.cs @@ -48,7 +48,7 @@ namespace MagMan.Data.Admin.DbModels /// /// Chiave principale (impianto) associata /// - public string MainKey { get; set; } = ""; + public int MainKey { get; set; } = 0; /// /// Boolean di creazione DB diff --git a/MagMan.Data.Admin/Migrations/20240115100646_MachineKeyAndDb.Designer.cs b/MagMan.Data.Admin/Migrations/20240115132229_MachineKeyAndDb.Designer.cs similarity index 93% rename from MagMan.Data.Admin/Migrations/20240115100646_MachineKeyAndDb.Designer.cs rename to MagMan.Data.Admin/Migrations/20240115132229_MachineKeyAndDb.Designer.cs index a27f11d..ea72a76 100644 --- a/MagMan.Data.Admin/Migrations/20240115100646_MachineKeyAndDb.Designer.cs +++ b/MagMan.Data.Admin/Migrations/20240115132229_MachineKeyAndDb.Designer.cs @@ -11,7 +11,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace MagMan.Data.Admin.Migrations { [DbContext(typeof(MultiTenantContext))] - [Migration("20240115100646_MachineKeyAndDb")] + [Migration("20240115132229_MachineKeyAndDb")] partial class MachineKeyAndDb { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -36,9 +36,8 @@ namespace MagMan.Data.Admin.Migrations b.Property("IsActive") .HasColumnType("tinyint(1)"); - b.Property("KeyName") - .IsRequired() - .HasColumnType("longtext"); + b.Property("KeyNum") + .HasColumnType("int"); b.Property("KeyValue") .IsRequired() @@ -98,9 +97,8 @@ namespace MagMan.Data.Admin.Migrations b.Property("IsActive") .HasColumnType("tinyint(1)"); - b.Property("MainKey") - .IsRequired() - .HasColumnType("longtext"); + b.Property("MainKey") + .HasColumnType("int"); b.Property("Name") .IsRequired() diff --git a/MagMan.Data.Admin/Migrations/20240115100646_MachineKeyAndDb.cs b/MagMan.Data.Admin/Migrations/20240115132229_MachineKeyAndDb.cs similarity index 61% rename from MagMan.Data.Admin/Migrations/20240115100646_MachineKeyAndDb.cs rename to MagMan.Data.Admin/Migrations/20240115132229_MachineKeyAndDb.cs index bef22b5..26e0148 100644 --- a/MagMan.Data.Admin/Migrations/20240115100646_MachineKeyAndDb.cs +++ b/MagMan.Data.Admin/Migrations/20240115132229_MachineKeyAndDb.cs @@ -8,6 +8,10 @@ namespace MagMan.Data.Admin.Migrations { protected override void Up(MigrationBuilder migrationBuilder) { + migrationBuilder.DropColumn( + name: "KeyName", + table: "AuthKeyList"); + migrationBuilder.AddColumn( name: "HasDb", table: "MachineList", @@ -15,12 +19,19 @@ namespace MagMan.Data.Admin.Migrations nullable: false, defaultValue: false); - migrationBuilder.AddColumn( + migrationBuilder.AddColumn( name: "MainKey", table: "MachineList", - type: "longtext", - nullable: false) - .Annotation("MySql:CharSet", "utf8mb4"); + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "KeyNum", + table: "AuthKeyList", + type: "int", + nullable: false, + defaultValue: 0); } protected override void Down(MigrationBuilder migrationBuilder) @@ -32,6 +43,17 @@ namespace MagMan.Data.Admin.Migrations migrationBuilder.DropColumn( name: "MainKey", table: "MachineList"); + + migrationBuilder.DropColumn( + name: "KeyNum", + table: "AuthKeyList"); + + migrationBuilder.AddColumn( + name: "KeyName", + table: "AuthKeyList", + type: "longtext", + nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"); } } } diff --git a/MagMan.Data.Admin/Migrations/MultiTenantContextModelSnapshot.cs b/MagMan.Data.Admin/Migrations/MultiTenantContextModelSnapshot.cs index 4a4cebf..57dd6d5 100644 --- a/MagMan.Data.Admin/Migrations/MultiTenantContextModelSnapshot.cs +++ b/MagMan.Data.Admin/Migrations/MultiTenantContextModelSnapshot.cs @@ -34,9 +34,8 @@ namespace MagMan.Data.Admin.Migrations b.Property("IsActive") .HasColumnType("tinyint(1)"); - b.Property("KeyName") - .IsRequired() - .HasColumnType("longtext"); + b.Property("KeyNum") + .HasColumnType("int"); b.Property("KeyValue") .IsRequired() @@ -96,9 +95,8 @@ namespace MagMan.Data.Admin.Migrations b.Property("IsActive") .HasColumnType("tinyint(1)"); - b.Property("MainKey") - .IsRequired() - .HasColumnType("longtext"); + b.Property("MainKey") + .HasColumnType("int"); b.Property("Name") .IsRequired()