diff --git a/MagMan.Core/DTO/DemoObj.cs b/MagMan.Core/DTO/DemoObj.cs
new file mode 100644
index 0000000..fd82469
--- /dev/null
+++ b/MagMan.Core/DTO/DemoObj.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MagMan.Core.DTO
+{
+ public class DemoObj
+ {
+ }
+}
diff --git a/MagMan.Core/MagMan.Core.csproj b/MagMan.Core/MagMan.Core.csproj
index 27ac386..df2e60e 100644
--- a/MagMan.Core/MagMan.Core.csproj
+++ b/MagMan.Core/MagMan.Core.csproj
@@ -6,4 +6,10 @@
enable
+
+
+
+
+
+
diff --git a/MagMan.Data/MailKitMailData.cs b/MagMan.Core/MailKitMailData.cs
similarity index 97%
rename from MagMan.Data/MailKitMailData.cs
rename to MagMan.Core/MailKitMailData.cs
index 34d4d0c..a1212b0 100644
--- a/MagMan.Data/MailKitMailData.cs
+++ b/MagMan.Core/MailKitMailData.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data
+namespace MagMan.Core
{
public class MailKitMailData
{
diff --git a/MagMan.Data/MailKitMailSettings.cs b/MagMan.Core/MailKitMailSettings.cs
similarity index 95%
rename from MagMan.Data/MailKitMailSettings.cs
rename to MagMan.Core/MailKitMailSettings.cs
index 592a509..218ca13 100644
--- a/MagMan.Data/MailKitMailSettings.cs
+++ b/MagMan.Core/MailKitMailSettings.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data
+namespace MagMan.Core
{
public class MailKitMailSettings
{
diff --git a/MagMan.Data/Services/IMailService.cs b/MagMan.Core/Services/IMailService.cs
similarity index 88%
rename from MagMan.Data/Services/IMailService.cs
rename to MagMan.Core/Services/IMailService.cs
index 42b5a88..0464f91 100644
--- a/MagMan.Data/Services/IMailService.cs
+++ b/MagMan.Core/Services/IMailService.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.Services
+namespace MagMan.Core.Services
{
public interface IMailService
{
diff --git a/MagMan.Data/Services/MailService.cs b/MagMan.Core/Services/MailService.cs
similarity index 97%
rename from MagMan.Data/Services/MailService.cs
rename to MagMan.Core/Services/MailService.cs
index acb28e1..f59d91a 100644
--- a/MagMan.Data/Services/MailService.cs
+++ b/MagMan.Core/Services/MailService.cs
@@ -3,8 +3,13 @@ using MailKit.Security;
using Microsoft.Extensions.Options;
using MimeKit;
using NLog;
+using MagMan.Core;
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
-namespace MagMan.Data.Services
+namespace MagMan.Core.Services
{
///
/// Implementazione MailKit come descritto qui https://blog.christian-schou.dk/send-emails-with-asp-net-core-with-mailkit/
diff --git a/MagMan.User/AdminContext.cs b/MagMan.Data.Admin/AdminContext.cs
similarity index 93%
rename from MagMan.User/AdminContext.cs
rename to MagMan.Data.Admin/AdminContext.cs
index b510ffe..ceee219 100644
--- a/MagMan.User/AdminContext.cs
+++ b/MagMan.Data.Admin/AdminContext.cs
@@ -1,8 +1,8 @@
-using MagMan.User.DbModels;
+using MagMan.Data.Admin.DbModels;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
-namespace MagMan.User
+namespace MagMan.Data.Admin
{
//
// This is here so CodeMaid doesn't reorganize this document
@@ -37,7 +37,7 @@ namespace MagMan.User
///
/// User management
///
- public DbSet UserList { get; set; }
+ public virtual DbSet UserList { get; set; }
#endregion Public Properties
diff --git a/MagMan.User/DbAdmin.cs b/MagMan.Data.Admin/DbAdmin.cs
similarity index 75%
rename from MagMan.User/DbAdmin.cs
rename to MagMan.Data.Admin/DbAdmin.cs
index b6790b1..a74a56a 100644
--- a/MagMan.User/DbAdmin.cs
+++ b/MagMan.Data.Admin/DbAdmin.cs
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.User
+namespace MagMan.Data.Admin
{
public class DbAdmin : IDisposable
{
@@ -68,31 +68,6 @@ namespace MagMan.User
return answ;
}
-#if false
- public static async Task migrateDbMain()
- {
- bool answ = false;
- using (MagManContext dbCtx = new MagManContext())
- {
- await dbCtx.Database.MigrateAsync();
- answ = true;
- }
- return answ;
- }
-
- public static bool resetPlantLogTable()
- {
- bool answ = false;
- using (MagManContext dbCtx = new MagManContext())
- {
- string sqlCommand = "TRUNCATE TABLE PlantLog;";
- dbCtx.Database.ExecuteSqlRaw(sqlCommand);
- answ = true;
- }
- return answ;
- }
-#endif
-
public void Dispose()
{
}
diff --git a/MagMan.User/DbConfig.cs b/MagMan.Data.Admin/DbConfig.cs
similarity index 82%
rename from MagMan.User/DbConfig.cs
rename to MagMan.Data.Admin/DbConfig.cs
index 21c958c..2dd32d3 100644
--- a/MagMan.User/DbConfig.cs
+++ b/MagMan.Data.Admin/DbConfig.cs
@@ -5,16 +5,16 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.User
+namespace MagMan.Data.Admin
{
public static class DbConfig
{
#region Public Fields
- public static string DATABASE_NAME = "MagMan";
+ public static string DATABASE_NAME = "MagMan_Ident";
public static int DATABASE_PROCESS_TIMEOUT = 5;
- public static string DATABASE_PWD = "viadante16";
+ public static string DATABASE_PWD = "viad@nte16!";
// Database config
public static string DATABASE_SERV = "127.0.0.1";
@@ -53,22 +53,15 @@ namespace MagMan.User
return migrateTask.Result;
}
-#if false
- public static bool ExecMigrationMain()
- {
- // esecuzione migrazione
- var migrateTask = Task.Run(async () => await DbAdmin.migrateDbMain());
- migrateTask.Wait();
- return migrateTask.Result;
- }
-#endif
-
public static void InitDb(string server, string nKey, string sKey)
{
DATABASE_SERV = server;
- DATABASE_NAME = $"MagMan_{nKey}";
+ // tutto fisso x gestione utenti
+#if false
+ DATABASE_NAME = $"MagMan_Ident";
DATABASE_USER = $"user_{nKey}";
- DATABASE_PWD = $"pwd_{sKey}";
+ DATABASE_PWD = $"pwd_{sKey}";
+#endif
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None";
// stringa admin con utente root egalware...
ADMIN_CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database=mysql;uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None";
diff --git a/MagMan.Data/DbModels/TableCount.cs b/MagMan.Data.Admin/DbModels/TableCount.cs
similarity index 74%
rename from MagMan.Data/DbModels/TableCount.cs
rename to MagMan.Data.Admin/DbModels/TableCount.cs
index 59484d8..b41a852 100644
--- a/MagMan.Data/DbModels/TableCount.cs
+++ b/MagMan.Data.Admin/DbModels/TableCount.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.DbModels
+namespace MagMan.Data.Admin.DbModels
{
///
/// Classe fake x il conteggio tabelle e check preliminari
@@ -15,8 +15,8 @@ namespace MagMan.Data.DbModels
{
#region Public Properties
- public int Count { get; set; }
- public string TableName { get; set; }
+ public int Count { get; set; } = 0;
+ public string TableName { get; set; } = "";
#endregion Public Properties
}
diff --git a/MagMan.Data/DbModels/UserPrivModel.cs b/MagMan.Data.Admin/DbModels/UserPrivModel.cs
similarity index 93%
rename from MagMan.Data/DbModels/UserPrivModel.cs
rename to MagMan.Data.Admin/DbModels/UserPrivModel.cs
index 59a3c06..fdcf490 100644
--- a/MagMan.Data/DbModels/UserPrivModel.cs
+++ b/MagMan.Data.Admin/DbModels/UserPrivModel.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.DbModels
+namespace MagMan.Data.Admin.DbModels
{
///
/// Tabella dei USER di MySql
diff --git a/MagMan.User/MagMan.User.csproj b/MagMan.Data.Admin/MagMan.Data.Admin.csproj
similarity index 78%
rename from MagMan.User/MagMan.User.csproj
rename to MagMan.Data.Admin/MagMan.Data.Admin.csproj
index 75c337f..f9c5c8c 100644
--- a/MagMan.User/MagMan.User.csproj
+++ b/MagMan.Data.Admin/MagMan.Data.Admin.csproj
@@ -1,4 +1,4 @@
-
+
net6.0
@@ -7,12 +7,17 @@
-
-
+
+
+
+
+
+
+
@@ -25,12 +30,10 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
-
-
-
-
+
diff --git a/MagMan.User/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs b/MagMan.Data.Admin/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
similarity index 98%
rename from MagMan.User/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
rename to MagMan.Data.Admin/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
index 5680f40..a493e56 100644
--- a/MagMan.User/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
+++ b/MagMan.Data.Admin/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using MagMan.User;
+using MagMan.Data.Admin;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace MagMan.User.Migrations.UserIdentityDb
+namespace MagMan.Data.Admin.Migrations.UserIdentityDb
{
[DbContext(typeof(UserIdentityDbContext))]
[Migration("20231222165912_CreateIdentitySchema")]
@@ -21,7 +21,7 @@ namespace MagMan.User.Migrations.UserIdentityDb
.HasAnnotation("ProductVersion", "6.0.25")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
- modelBuilder.Entity("MagMan.User.DbModels.TableCount", b =>
+ modelBuilder.Entity("MagMan.Data.Admin.DbModels.TableCount", b =>
{
b.Property("Count")
.HasColumnType("int");
diff --git a/MagMan.User/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs b/MagMan.Data.Admin/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
similarity index 99%
rename from MagMan.User/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
rename to MagMan.Data.Admin/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
index 22607f3..6855671 100644
--- a/MagMan.User/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
+++ b/MagMan.Data.Admin/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
@@ -4,7 +4,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace MagMan.User.Migrations.UserIdentityDb
+namespace MagMan.Data.Admin.Migrations.UserIdentityDb
{
public partial class CreateIdentitySchema : Migration
{
diff --git a/MagMan.User/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs b/MagMan.Data.Admin/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
similarity index 98%
rename from MagMan.User/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
rename to MagMan.Data.Admin/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
index f753adb..fd95ddc 100644
--- a/MagMan.User/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
+++ b/MagMan.Data.Admin/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
@@ -1,13 +1,13 @@
//
using System;
-using MagMan.User;
+using MagMan.Data.Admin;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace MagMan.User.Migrations.UserIdentityDb
+namespace MagMan.Data.Admin.Migrations.UserIdentityDb
{
[DbContext(typeof(UserIdentityDbContext))]
partial class UserIdentityDbContextModelSnapshot : ModelSnapshot
@@ -19,7 +19,7 @@ namespace MagMan.User.Migrations.UserIdentityDb
.HasAnnotation("ProductVersion", "6.0.25")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
- modelBuilder.Entity("MagMan.User.DbModels.TableCount", b =>
+ modelBuilder.Entity("MagMan.Data.Admin.DbModels.TableCount", b =>
{
b.Property("Count")
.HasColumnType("int");
diff --git a/MagMan.Data/Services/BaseServ.cs b/MagMan.Data.Admin/Services/BaseServ.cs
similarity index 98%
rename from MagMan.Data/Services/BaseServ.cs
rename to MagMan.Data.Admin/Services/BaseServ.cs
index b69bcc0..c391d77 100644
--- a/MagMan.Data/Services/BaseServ.cs
+++ b/MagMan.Data.Admin/Services/BaseServ.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.Services
+namespace MagMan.Data.Admin.Services
{
///
/// Classe di partenza x costruzione servizi di accesso dati + cache
diff --git a/MagMan.User/UserAdminConfiguration.cs b/MagMan.Data.Admin/UserAdminConfiguration.cs
similarity index 96%
rename from MagMan.User/UserAdminConfiguration.cs
rename to MagMan.Data.Admin/UserAdminConfiguration.cs
index abcc9f0..521af69 100644
--- a/MagMan.User/UserAdminConfiguration.cs
+++ b/MagMan.Data.Admin/UserAdminConfiguration.cs
@@ -7,7 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.User
+namespace MagMan.Data.Admin
{
public class UserAdminConfiguration : IEntityTypeConfiguration
{
diff --git a/MagMan.User/UserData.cs b/MagMan.Data.Admin/UserData.cs
similarity index 95%
rename from MagMan.User/UserData.cs
rename to MagMan.Data.Admin/UserData.cs
index 269f347..cfb8475 100644
--- a/MagMan.User/UserData.cs
+++ b/MagMan.Data.Admin/UserData.cs
@@ -1,6 +1,6 @@
using Microsoft.AspNetCore.Identity;
-namespace MagMan.User
+namespace MagMan.Data.Admin
{
///
/// Classe generalizzaizone identity (user + roles + claims) x gestione semplificata in editing
diff --git a/MagMan.User/UserIdentityDbContext.cs b/MagMan.Data.Admin/UserIdentityDbContext.cs
similarity index 87%
rename from MagMan.User/UserIdentityDbContext.cs
rename to MagMan.Data.Admin/UserIdentityDbContext.cs
index 60fa9f1..28fd977 100644
--- a/MagMan.User/UserIdentityDbContext.cs
+++ b/MagMan.Data.Admin/UserIdentityDbContext.cs
@@ -1,4 +1,4 @@
-using MagMan.User.DbModels;
+using MagMan.Data.Admin.DbModels;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using System;
@@ -7,7 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.User
+namespace MagMan.Data.Admin
{
public class UserIdentityDbContext : IdentityDbContext
{
@@ -24,13 +24,8 @@ namespace MagMan.User
{ }
}
- public UserIdentityDbContext(DbContextOptions options)
- : base(options)
+ public UserIdentityDbContext(DbContextOptions options) : base(options)
{
-#if false
- // se non ci fosse... crea!
- Database.EnsureCreated();
-#endif
try
{
// se non ci fosse... crea o migra!
@@ -44,7 +39,7 @@ namespace MagMan.User
#region Public Properties
- public DbSet DbSetCounts { get; set; }
+ public virtual DbSet DbSetCounts { get; set; }
#endregion Public Properties
diff --git a/MagMan.Data/UserRoleConfiguration.cs b/MagMan.Data.Admin/UserRoleConfiguration.cs
similarity index 97%
rename from MagMan.Data/UserRoleConfiguration.cs
rename to MagMan.Data.Admin/UserRoleConfiguration.cs
index b3c237b..c3a9f75 100644
--- a/MagMan.Data/UserRoleConfiguration.cs
+++ b/MagMan.Data.Admin/UserRoleConfiguration.cs
@@ -7,7 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data
+namespace MagMan.Data.Admin
{
public class UserRoleConfiguration : IEntityTypeConfiguration
{
diff --git a/MagMan.Data/DbAdmin.cs b/MagMan.Data.Tenant/DbAdmin.cs
similarity index 98%
rename from MagMan.Data/DbAdmin.cs
rename to MagMan.Data.Tenant/DbAdmin.cs
index b414725..d3bc0b0 100644
--- a/MagMan.Data/DbAdmin.cs
+++ b/MagMan.Data.Tenant/DbAdmin.cs
@@ -4,7 +4,7 @@ using System;
using System.Linq;
using System.Threading.Tasks;
-namespace MagMan.Data
+namespace MagMan.Data.Tenant
{
public class DbAdmin : IDisposable
{
diff --git a/MagMan.Data/DbConfig.cs b/MagMan.Data.Tenant/DbConfig.cs
similarity index 98%
rename from MagMan.Data/DbConfig.cs
rename to MagMan.Data.Tenant/DbConfig.cs
index 573f3ff..6b2ea66 100644
--- a/MagMan.Data/DbConfig.cs
+++ b/MagMan.Data.Tenant/DbConfig.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data
+namespace MagMan.Data.Tenant
{
public static class DbConfig
{
diff --git a/MagMan.Data/DbModels/ConfigModel.cs b/MagMan.Data.Tenant/DbModels/ConfigModel.cs
similarity index 95%
rename from MagMan.Data/DbModels/ConfigModel.cs
rename to MagMan.Data.Tenant/DbModels/ConfigModel.cs
index ffc27f9..4e20fca 100644
--- a/MagMan.Data/DbModels/ConfigModel.cs
+++ b/MagMan.Data.Tenant/DbModels/ConfigModel.cs
@@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations;
//
// This is here so CodeMaid doesn't reorganize this document
//
-namespace MagMan.Data.DbModels
+namespace MagMan.Data.Tenant.DbModels
{
///
/// Tabella Config
diff --git a/MagMan.Data/DbModels/ItemModel.cs b/MagMan.Data.Tenant/DbModels/ItemModel.cs
similarity index 98%
rename from MagMan.Data/DbModels/ItemModel.cs
rename to MagMan.Data.Tenant/DbModels/ItemModel.cs
index 6c309c9..e4a8eac 100644
--- a/MagMan.Data/DbModels/ItemModel.cs
+++ b/MagMan.Data.Tenant/DbModels/ItemModel.cs
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.DbModels
+namespace MagMan.Data.Tenant.DbModels
{
//
// This is here so CodeMaid doesn't reorganize this document
diff --git a/MagMan.Data/DbModels/MaterialModel.cs b/MagMan.Data.Tenant/DbModels/MaterialModel.cs
similarity index 96%
rename from MagMan.Data/DbModels/MaterialModel.cs
rename to MagMan.Data.Tenant/DbModels/MaterialModel.cs
index 5a4196d..906da7b 100644
--- a/MagMan.Data/DbModels/MaterialModel.cs
+++ b/MagMan.Data.Tenant/DbModels/MaterialModel.cs
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.DbModels
+namespace MagMan.Data.Tenant.DbModels
{
//
// This is here so CodeMaid doesn't reorganize this document
diff --git a/MagMan.Data/DbModels/MovMagModel.cs b/MagMan.Data.Tenant/DbModels/MovMagModel.cs
similarity index 97%
rename from MagMan.Data/DbModels/MovMagModel.cs
rename to MagMan.Data.Tenant/DbModels/MovMagModel.cs
index 432f8bf..32aac01 100644
--- a/MagMan.Data/DbModels/MovMagModel.cs
+++ b/MagMan.Data.Tenant/DbModels/MovMagModel.cs
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.DbModels
+namespace MagMan.Data.Tenant.DbModels
{
//
// This is here so CodeMaid doesn't reorganize this document
diff --git a/MagMan.Data/DbModels/PrintJobQueueModel.cs b/MagMan.Data.Tenant/DbModels/PrintJobQueueModel.cs
similarity index 95%
rename from MagMan.Data/DbModels/PrintJobQueueModel.cs
rename to MagMan.Data.Tenant/DbModels/PrintJobQueueModel.cs
index 0a9fa0a..bb902da 100644
--- a/MagMan.Data/DbModels/PrintJobQueueModel.cs
+++ b/MagMan.Data.Tenant/DbModels/PrintJobQueueModel.cs
@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.DbModels
+namespace MagMan.Data.Tenant.DbModels
{
//
// This is here so CodeMaid doesn't reorganize this document
diff --git a/MagMan.User/DbModels/TableCount.cs b/MagMan.Data.Tenant/DbModels/TableCount.cs
similarity index 92%
rename from MagMan.User/DbModels/TableCount.cs
rename to MagMan.Data.Tenant/DbModels/TableCount.cs
index b1c30f5..de964b6 100644
--- a/MagMan.User/DbModels/TableCount.cs
+++ b/MagMan.Data.Tenant/DbModels/TableCount.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.User.DbModels
+namespace MagMan.Data.Tenant.DbModels
{
///
/// Classe fake x il conteggio tabelle e check preliminari
diff --git a/MagMan.User/DbModels/UserPrivModel.cs b/MagMan.Data.Tenant/DbModels/UserPrivModel.cs
similarity index 93%
rename from MagMan.User/DbModels/UserPrivModel.cs
rename to MagMan.Data.Tenant/DbModels/UserPrivModel.cs
index e0ad310..a2d6db8 100644
--- a/MagMan.User/DbModels/UserPrivModel.cs
+++ b/MagMan.Data.Tenant/DbModels/UserPrivModel.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.User.DbModels
+namespace MagMan.Data.Tenant.DbModels
{
///
/// Tabella dei USER di MySql
diff --git a/MagMan.Data/MagMan.Data.csproj b/MagMan.Data.Tenant/MagMan.Data.Tenant.csproj
similarity index 75%
rename from MagMan.Data/MagMan.Data.csproj
rename to MagMan.Data.Tenant/MagMan.Data.Tenant.csproj
index 01e5b7e..178602d 100644
--- a/MagMan.Data/MagMan.Data.csproj
+++ b/MagMan.Data.Tenant/MagMan.Data.Tenant.csproj
@@ -12,28 +12,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
all
@@ -54,4 +36,9 @@
+
+
+
+
+
diff --git a/MagMan.Data/MagManContext.cs b/MagMan.Data.Tenant/MagManContext.cs
similarity index 98%
rename from MagMan.Data/MagManContext.cs
rename to MagMan.Data.Tenant/MagManContext.cs
index 8d76caf..ce5d95d 100644
--- a/MagMan.Data/MagManContext.cs
+++ b/MagMan.Data.Tenant/MagManContext.cs
@@ -1,4 +1,4 @@
-using MagMan.Data.DbModels;
+using MagMan.Data.Tenant.DbModels;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NLog;
@@ -9,7 +9,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data
+namespace MagMan.Data.Tenant
{
public partial class MagManContext : DbContext
{
diff --git a/MagMan.Data/Migrations/20231222163946_InitDb.Designer.cs b/MagMan.Data.Tenant/Migrations/20231222163946_InitDb.Designer.cs
similarity index 97%
rename from MagMan.Data/Migrations/20231222163946_InitDb.Designer.cs
rename to MagMan.Data.Tenant/Migrations/20231222163946_InitDb.Designer.cs
index fdfcda4..9171131 100644
--- a/MagMan.Data/Migrations/20231222163946_InitDb.Designer.cs
+++ b/MagMan.Data.Tenant/Migrations/20231222163946_InitDb.Designer.cs
@@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace MagMan.Data.Migrations
+namespace MagMan.Data.Tenant.Migrations
{
[DbContext(typeof(MagManContext))]
[Migration("20231222163946_InitDb")]
diff --git a/MagMan.Data/Migrations/20231222163946_InitDb.cs b/MagMan.Data.Tenant/Migrations/20231222163946_InitDb.cs
similarity index 97%
rename from MagMan.Data/Migrations/20231222163946_InitDb.cs
rename to MagMan.Data.Tenant/Migrations/20231222163946_InitDb.cs
index a67ee8b..0a7e484 100644
--- a/MagMan.Data/Migrations/20231222163946_InitDb.cs
+++ b/MagMan.Data.Tenant/Migrations/20231222163946_InitDb.cs
@@ -2,7 +2,7 @@
#nullable disable
-namespace MagMan.Data.Migrations
+namespace MagMan.Data.Tenant.Migrations
{
public partial class InitDb : Migration
{
diff --git a/MagMan.Data/Migrations/20231222180319_AddMagBaseObj.Designer.cs b/MagMan.Data.Tenant/Migrations/20231222180319_AddMagBaseObj.Designer.cs
similarity index 99%
rename from MagMan.Data/Migrations/20231222180319_AddMagBaseObj.Designer.cs
rename to MagMan.Data.Tenant/Migrations/20231222180319_AddMagBaseObj.Designer.cs
index 9c79e5b..f1aa296 100644
--- a/MagMan.Data/Migrations/20231222180319_AddMagBaseObj.Designer.cs
+++ b/MagMan.Data.Tenant/Migrations/20231222180319_AddMagBaseObj.Designer.cs
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace MagMan.Data.Migrations
+namespace MagMan.Data.Tenant.Migrations
{
[DbContext(typeof(MagManContext))]
[Migration("20231222180319_AddMagBaseObj")]
diff --git a/MagMan.Data/Migrations/20231222180319_AddMagBaseObj.cs b/MagMan.Data.Tenant/Migrations/20231222180319_AddMagBaseObj.cs
similarity index 98%
rename from MagMan.Data/Migrations/20231222180319_AddMagBaseObj.cs
rename to MagMan.Data.Tenant/Migrations/20231222180319_AddMagBaseObj.cs
index 18a7385..b141d32 100644
--- a/MagMan.Data/Migrations/20231222180319_AddMagBaseObj.cs
+++ b/MagMan.Data.Tenant/Migrations/20231222180319_AddMagBaseObj.cs
@@ -4,7 +4,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace MagMan.Data.Migrations
+namespace MagMan.Data.Tenant.Migrations
{
public partial class AddMagBaseObj : Migration
{
diff --git a/MagMan.Data/Migrations/20231222180523_AddMagBaseObj01.Designer.cs b/MagMan.Data.Tenant/Migrations/20231222180523_AddMagBaseObj01.Designer.cs
similarity index 99%
rename from MagMan.Data/Migrations/20231222180523_AddMagBaseObj01.Designer.cs
rename to MagMan.Data.Tenant/Migrations/20231222180523_AddMagBaseObj01.Designer.cs
index 3f644e4..bc5a906 100644
--- a/MagMan.Data/Migrations/20231222180523_AddMagBaseObj01.Designer.cs
+++ b/MagMan.Data.Tenant/Migrations/20231222180523_AddMagBaseObj01.Designer.cs
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace MagMan.Data.Migrations
+namespace MagMan.Data.Tenant.Migrations
{
[DbContext(typeof(MagManContext))]
[Migration("20231222180523_AddMagBaseObj01")]
diff --git a/MagMan.Data/Migrations/20231222180523_AddMagBaseObj01.cs b/MagMan.Data.Tenant/Migrations/20231222180523_AddMagBaseObj01.cs
similarity index 98%
rename from MagMan.Data/Migrations/20231222180523_AddMagBaseObj01.cs
rename to MagMan.Data.Tenant/Migrations/20231222180523_AddMagBaseObj01.cs
index b12d2ff..2ce7017 100644
--- a/MagMan.Data/Migrations/20231222180523_AddMagBaseObj01.cs
+++ b/MagMan.Data.Tenant/Migrations/20231222180523_AddMagBaseObj01.cs
@@ -4,7 +4,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace MagMan.Data.Migrations
+namespace MagMan.Data.Tenant.Migrations
{
public partial class AddMagBaseObj01 : Migration
{
diff --git a/MagMan.Data/Migrations/MagManContextModelSnapshot.cs b/MagMan.Data.Tenant/Migrations/MagManContextModelSnapshot.cs
similarity index 99%
rename from MagMan.Data/Migrations/MagManContextModelSnapshot.cs
rename to MagMan.Data.Tenant/Migrations/MagManContextModelSnapshot.cs
index 6f1c17b..9092b6a 100644
--- a/MagMan.Data/Migrations/MagManContextModelSnapshot.cs
+++ b/MagMan.Data.Tenant/Migrations/MagManContextModelSnapshot.cs
@@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace MagMan.Data.Migrations
+namespace MagMan.Data.Tenant.Migrations
{
[DbContext(typeof(MagManContext))]
partial class MagManContextModelSnapshot : ModelSnapshot
diff --git a/MagMan.Data/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs b/MagMan.Data.Tenant/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
similarity index 100%
rename from MagMan.Data/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
rename to MagMan.Data.Tenant/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.Designer.cs
diff --git a/MagMan.Data/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs b/MagMan.Data.Tenant/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
similarity index 100%
rename from MagMan.Data/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
rename to MagMan.Data.Tenant/Migrations/UserIdentityDb/20231222165912_CreateIdentitySchema.cs
diff --git a/MagMan.Data/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs b/MagMan.Data.Tenant/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
similarity index 100%
rename from MagMan.Data/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
rename to MagMan.Data.Tenant/Migrations/UserIdentityDb/UserIdentityDbContextModelSnapshot.cs
diff --git a/MagMan.Data/ModelBuilderExtensions.cs b/MagMan.Data.Tenant/ModelBuilderExtensions.cs
similarity index 99%
rename from MagMan.Data/ModelBuilderExtensions.cs
rename to MagMan.Data.Tenant/ModelBuilderExtensions.cs
index 5c8470e..fd001d9 100644
--- a/MagMan.Data/ModelBuilderExtensions.cs
+++ b/MagMan.Data.Tenant/ModelBuilderExtensions.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data
+namespace MagMan.Data.Tenant
{
public static class ModelBuilderExtensions
{
diff --git a/MagMan.Data.Tenant/Services/BaseServ.cs b/MagMan.Data.Tenant/Services/BaseServ.cs
new file mode 100644
index 0000000..828283d
--- /dev/null
+++ b/MagMan.Data.Tenant/Services/BaseServ.cs
@@ -0,0 +1,70 @@
+using Microsoft.Extensions.Configuration;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MagMan.Data.Tenant.Services
+{
+ ///
+ /// Classe di partenza x costruzione servizi di accesso dati + cache
+ ///
+ public class BaseServ
+ {
+ #region Protected Properties
+
+ ///
+ /// Durata cache breve (1 min circa + perturbazione percentuale +/-10%)
+ ///
+ protected TimeSpan FastCache
+ {
+ get => TimeSpan.FromSeconds(cacheTtlShort * rnd.Next(900, 1100) / 1000);
+ }
+
+ ///
+ /// Durata cache lunga (+ perturbazione percentuale +/-10%)
+ ///
+ protected TimeSpan LongCache
+ {
+ get => TimeSpan.FromSeconds(cacheTtlLong * rnd.Next(900, 1100) / 1000);
+ }
+
+ ///
+ /// Durata cache MOLTO breve (10 sec circa + perturbazione percentuale +/-10%)
+ ///
+ protected TimeSpan UltraFastCache
+ {
+ get => TimeSpan.FromSeconds(cacheTtlShort / 6 * rnd.Next(900, 1100) / 1000);
+ }
+
+ ///
+ /// Durata cache MOLTO lunga (+ perturbazione percentuale +/-10%)
+ ///
+ protected TimeSpan UltraLongCache
+ {
+ get => TimeSpan.FromSeconds(cacheTtlLong * 10 * rnd.Next(900, 1100) / 1000);
+ }
+
+ #endregion Protected Properties
+
+
+ protected static IConfiguration _configuration = null!;
+
+ #region Private Fields
+
+ ///
+ /// Durata cache lunga IN SECONDI
+ ///
+ private int cacheTtlLong = 60 * 5;
+
+ ///
+ /// Durata cache breve IN SECONDI
+ ///
+ private int cacheTtlShort = 60 * 1;
+
+ private Random rnd = new Random();
+
+ #endregion Private Fields
+ }
+}
diff --git a/MagMan.Data/Services/MessageService.cs b/MagMan.Data.Tenant/Services/MessageService.cs
similarity index 98%
rename from MagMan.Data/Services/MessageService.cs
rename to MagMan.Data.Tenant/Services/MessageService.cs
index d9907f3..65c9a4c 100644
--- a/MagMan.Data/Services/MessageService.cs
+++ b/MagMan.Data.Tenant/Services/MessageService.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.Services
+namespace MagMan.Data.Tenant.Services
{
public class MessageService
{
diff --git a/MagMan.Data/Services/SelectData.cs b/MagMan.Data.Tenant/Services/SelectData.cs
similarity index 97%
rename from MagMan.Data/Services/SelectData.cs
rename to MagMan.Data.Tenant/Services/SelectData.cs
index 2cd4ae5..7e073ca 100644
--- a/MagMan.Data/Services/SelectData.cs
+++ b/MagMan.Data.Tenant/Services/SelectData.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.Services
+namespace MagMan.Data.Tenant.Services
{
public class SelectData
{
diff --git a/MagMan.Data/Services/SelectOrderData.cs b/MagMan.Data.Tenant/Services/SelectOrderData.cs
similarity index 97%
rename from MagMan.Data/Services/SelectOrderData.cs
rename to MagMan.Data.Tenant/Services/SelectOrderData.cs
index 1395eb3..bb95de3 100644
--- a/MagMan.Data/Services/SelectOrderData.cs
+++ b/MagMan.Data.Tenant/Services/SelectOrderData.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace MagMan.Data.Services
+namespace MagMan.Data.Tenant.Services
{
public class SelectOrderData : SelectData
{
diff --git a/MagMan.Data/AdminContext.cs b/MagMan.Data/AdminContext.cs
deleted file mode 100644
index 459ae66..0000000
--- a/MagMan.Data/AdminContext.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using MagMan.Data.DbModels;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Configuration;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MagMan.Data
-{
- //
- // This is here so CodeMaid doesn't reorganize this document
- //
- public partial class AdminContext : DbContext
- {
- #region Private Fields
-
- private IConfiguration _configuration;
-
- #endregion Private Fields
-
- #region Public Constructors
-
- public AdminContext()
- {
- }
-
- public AdminContext(IConfiguration configuration)
- {
- _configuration = configuration;
- }
-
- public AdminContext(DbContextOptions options) : base(options)
- {
- }
-
- #endregion Public Constructors
-
- #region Public Properties
-
- ///
- /// User management
- ///
- public DbSet UserList { get; set; }
-
- #endregion Public Properties
-
- #region Protected Methods
-
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- string connString = DbConfig.ADMIN_CONNECTION_STRING;
- if (!optionsBuilder.IsConfigured)
- {
- //connString = _configuration.GetConnectionString("MagMan.Data");
- connString = "Server=localhost;port=3306;database=mysql;user=root;pwd=Egalware_24068!;sslmode=None;";
- var serverVersion = ServerVersion.AutoDetect(connString);
- optionsBuilder.UseMySql(connString, serverVersion);
- }
- }
-
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- modelBuilder.Entity().HasKey(c => new { c.Host, c.User });
-
- OnModelCreatingPartial(modelBuilder);
- }
-
- #endregion Protected Methods
-
-
- partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
- }
-}
\ No newline at end of file
diff --git a/MagMan.Data/MailKitEmailSender.cs b/MagMan.Data/MailKitEmailSender.cs
deleted file mode 100644
index eff7ed5..0000000
--- a/MagMan.Data/MailKitEmailSender.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using Microsoft.Extensions.Options;
-using MimeKit.Text;
-using MimeKit;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using MailKit.Net.Smtp;
-using Microsoft.AspNetCore.Identity.UI.Services;
-
-namespace MagMan.Data
-{
- ///
- /// Implementazione interfaccia email con pacchetto MailKIT
- ///
- /// https://www.ryadel.com/en/asp-net-core-send-email-messages-smtp-mailkit/
- ///
- public class MailKitEmailSender : IEmailSender
- {
- #region Public Constructors
-
- public MailKitEmailSender(IOptions options)
- {
- this.Options = options.Value;
- }
-
- #endregion Public Constructors
-
- #region Public Properties
-
- public MailKitEmailSenderOptions Options { get; set; }
-
- #endregion Public Properties
-
- #region Public Methods
-
- public Task Execute(string to, string subject, string message)
- {
- // create message
- var email = new MimeMessage();
- email.Sender = MailboxAddress.Parse(Options.Sender_EMail);
- if (!string.IsNullOrEmpty(Options.Sender_Name))
- email.Sender.Name = Options.Sender_Name;
- email.From.Add(email.Sender);
- email.To.Add(MailboxAddress.Parse(to));
- email.Subject = subject;
- email.Body = new TextPart(TextFormat.Html) { Text = message };
-
- // send email
- using (var smtp = new SmtpClient())
- {
- smtp.Connect(Options.Host_Address, Options.Host_Port, Options.Host_SecureSocketOptions);
- smtp.Authenticate(Options.Host_Username, Options.Host_Password);
- smtp.Send(email);
- smtp.Disconnect(true);
- }
-
- return Task.FromResult(true);
- }
-
- public Task SendEmailAsync(string email, string subject, string message)
- {
- return Execute(email, subject, message);
- }
-
- #endregion Public Methods
- }
-}
\ No newline at end of file
diff --git a/MagMan.Data/MailKitEmailSenderOptions.cs b/MagMan.Data/MailKitEmailSenderOptions.cs
deleted file mode 100644
index 36eaadd..0000000
--- a/MagMan.Data/MailKitEmailSenderOptions.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using MailKit.Security;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MagMan.Data
-{
- public class MailKitEmailSenderOptions
- {
- #region Public Constructors
-
- public MailKitEmailSenderOptions()
- {
- Host_SecureSocketOptions = SecureSocketOptions.Auto;
- }
-
- #endregion Public Constructors
-
- #region Public Properties
-
- public string Host_Address { get; set; } = "";
-
- public string Host_Password { get; set; } = "";
- public int Host_Port { get; set; } = 0;
-
- public SecureSocketOptions Host_SecureSocketOptions { get; set; } = SecureSocketOptions.None;
- public string Host_Username { get; set; } = "";
- public string Sender_EMail { get; set; } = "";
-
- public string Sender_Name { get; set; } = "";
-
- #endregion Public Properties
- }
-}
\ No newline at end of file
diff --git a/MagMan.Data/UserAdminConfiguration.cs b/MagMan.Data/UserAdminConfiguration.cs
deleted file mode 100644
index c2cbde7..0000000
--- a/MagMan.Data/UserAdminConfiguration.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using Microsoft.AspNetCore.Identity;
-using Microsoft.EntityFrameworkCore.Metadata.Builders;
-using Microsoft.EntityFrameworkCore;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MagMan.Data
-{
- public class UserAdminConfiguration : IEntityTypeConfiguration
- {
- #region Public Methods
-
- public void Configure(EntityTypeBuilder builder)
- {
- builder.HasData(
- new IdentityUser { UserName = "samuele@steamware.net", Email = "samuele@steamware.net", EmailConfirmed = true },
- new IdentityUser { UserName = "samuele.locatelli@egalware.com", Email = "samuele.locatelli@egalware.com", EmailConfirmed = true }
- );
- }
-
- #endregion Public Methods
- }
-}
diff --git a/MagMan.Data/UserData.cs b/MagMan.Data/UserData.cs
deleted file mode 100644
index 5c15c58..0000000
--- a/MagMan.Data/UserData.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Microsoft.AspNetCore.Identity;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MagMan.Data
-{
- ///
- /// Classe generalizzaizone identity (user + roles + claims) x gestione semplificata in editing
- ///
- public class UserData
- {
- #region Public Properties
-
- public List Claims { get; set; } = new List();
-
- public IdentityUser Identity { get; set; } = new IdentityUser();
-
- public List Roles { get; set; } = new List();
-
- #endregion Public Properties
- }
-}
diff --git a/MagMan.Data/UserIdentityDbContext.cs b/MagMan.Data/UserIdentityDbContext.cs
deleted file mode 100644
index 3d415a1..0000000
--- a/MagMan.Data/UserIdentityDbContext.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection.Emit;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore;
-using MagMan.Data.DbModels;
-
-namespace MagMan.Data
-{
- public class UserIdentityDbContext : IdentityDbContext
- {
- #region Public Constructors
-
- public UserIdentityDbContext()
- {
- try
- {
- // se non ci fosse... crea o migra!
- Database.Migrate();
- }
- catch (Exception exc)
- { }
- }
-
- public UserIdentityDbContext(DbContextOptions options)
- : base(options)
- {
-#if false
- // se non ci fosse... crea!
- Database.EnsureCreated();
-#endif
- try
- {
- // se non ci fosse... crea o migra!
- Database.Migrate();
- }
- catch (Exception exc)
- { }
- }
-
- #endregion Public Constructors
-
- #region Public Properties
-
- public DbSet DbSetCounts { get; set; }
-
- #endregion Public Properties
-
- #region Protected Methods
-
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- string connString = DbConfig.CONNECTION_STRING;
- if (!optionsBuilder.IsConfigured)
- {
- var serverVersion = ServerVersion.AutoDetect(connString);
- optionsBuilder.UseMySql(connString, serverVersion);
- }
- }
-
- protected override void OnModelCreating(ModelBuilder builder)
- {
- base.OnModelCreating(builder);
-
- // aggiunta ruoli
- builder.ApplyConfiguration(new UserRoleConfiguration());
- // aggiunta user admin base
- builder.ApplyConfiguration(new UserAdminConfiguration());
-
- // Todo: aggiungere configurazione claims oltre ai roles...
-
- }
-
- #endregion Protected Methods
- }
-}
diff --git a/MagMan.UI.sln b/MagMan.UI.sln
index 5c96199..60bf249 100644
--- a/MagMan.UI.sln
+++ b/MagMan.UI.sln
@@ -7,9 +7,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MagMan.UI", "MagMan.UI\MagM
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MagMan.Core", "MagMan.Core\MagMan.Core.csproj", "{328950E0-CCFB-40EF-AC68-A26912135588}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MagMan.Data", "MagMan.Data\MagMan.Data.csproj", "{4F26EF07-74E7-4A8F-B24B-19AACDD718B3}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagMan.Data.Tenant", "MagMan.Data.Tenant\MagMan.Data.Tenant.csproj", "{69E22B67-FFA7-4E21-81A7-B8F025A420C5}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagMan.User", "MagMan.User\MagMan.User.csproj", "{E63054F2-C7EE-4996-B764-B9DA6033F754}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagMan.Data.Admin", "MagMan.Data.Admin\MagMan.Data.Admin.csproj", "{324914D5-2616-42D8-82EF-5420148DC9E1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -25,14 +25,14 @@ Global
{328950E0-CCFB-40EF-AC68-A26912135588}.Debug|Any CPU.Build.0 = Debug|Any CPU
{328950E0-CCFB-40EF-AC68-A26912135588}.Release|Any CPU.ActiveCfg = Release|Any CPU
{328950E0-CCFB-40EF-AC68-A26912135588}.Release|Any CPU.Build.0 = Release|Any CPU
- {4F26EF07-74E7-4A8F-B24B-19AACDD718B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4F26EF07-74E7-4A8F-B24B-19AACDD718B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4F26EF07-74E7-4A8F-B24B-19AACDD718B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4F26EF07-74E7-4A8F-B24B-19AACDD718B3}.Release|Any CPU.Build.0 = Release|Any CPU
- {E63054F2-C7EE-4996-B764-B9DA6033F754}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E63054F2-C7EE-4996-B764-B9DA6033F754}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E63054F2-C7EE-4996-B764-B9DA6033F754}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E63054F2-C7EE-4996-B764-B9DA6033F754}.Release|Any CPU.Build.0 = Release|Any CPU
+ {69E22B67-FFA7-4E21-81A7-B8F025A420C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {69E22B67-FFA7-4E21-81A7-B8F025A420C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {69E22B67-FFA7-4E21-81A7-B8F025A420C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {69E22B67-FFA7-4E21-81A7-B8F025A420C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {324914D5-2616-42D8-82EF-5420148DC9E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {324914D5-2616-42D8-82EF-5420148DC9E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {324914D5-2616-42D8-82EF-5420148DC9E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {324914D5-2616-42D8-82EF-5420148DC9E1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/MagMan.UI/Components/MigrationManager.razor b/MagMan.UI/Components/MigrationManager.razor
index 512650a..cf922c0 100644
--- a/MagMan.UI/Components/MigrationManager.razor
+++ b/MagMan.UI/Components/MigrationManager.razor
@@ -44,7 +44,7 @@
return;
reportProcess();
- await MagMan.Data.DbAdmin.migrateDbMain();
+ await MagMan.Data.Tenant.DbAdmin.migrateDbMain();
await ReloadData();
reportChange();
}
@@ -55,7 +55,7 @@
return;
reportProcess();
- await MagMan.User.DbAdmin.migrateDbIdentity();
+ await MagMan.Data.Admin.DbAdmin.migrateDbIdentity();
await ReloadData();
reportChange();
}
@@ -71,7 +71,7 @@
protected async Task ReloadData()
{
- var resultIden = await Health.Checks.DbIdentity(DbConfig.DATABASE_NAME);
+ var resultIden = await Health.Checks.DbIdentity(MagMan.Data.Admin.DbConfig.DATABASE_NAME);
DbIdentity = (resultIden.Status == Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus.Healthy);
DbAllOk = (DbIdentity);
}
diff --git a/MagMan.UI/Components/SearchMod.razor.cs b/MagMan.UI/Components/SearchMod.razor.cs
index 8f49591..c16384a 100644
--- a/MagMan.UI/Components/SearchMod.razor.cs
+++ b/MagMan.UI/Components/SearchMod.razor.cs
@@ -1,6 +1,5 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-using MagMan.Data.Services;
+
+using MagMan.Data.Tenant.Services;
using Microsoft.AspNetCore.Components;
namespace MagMan.UI.Components
diff --git a/MagMan.UI/Components/SetupDiagnostics.razor b/MagMan.UI/Components/SetupDiagnostics.razor
index 28f9b47..e0b04ba 100644
--- a/MagMan.UI/Components/SetupDiagnostics.razor
+++ b/MagMan.UI/Components/SetupDiagnostics.razor
@@ -87,10 +87,10 @@
}
protected async Task ReloadData()
{
- var resultLog = await Health.Checks.DbPlantTable(DbConfig.DATABASE_NAME);
- var resultIden = await Health.Checks.DbIdentity(DbConfig.DATABASE_NAME);
- DbLogOk = (resultLog.Status == HealthStatus.Healthy);
+ var resultIden = await Health.Checks.DbIdentity(MagMan.Data.Admin.DbConfig.DATABASE_NAME);
+ var resultLog = await Health.Checks.DbPlantTable(MagMan.Data.Tenant.DbConfig.DATABASE_NAME);
DbIdentity = (resultIden.Status == HealthStatus.Healthy);
+ DbLogOk = (resultLog.Status == HealthStatus.Healthy);
DbAllOk = (DbLogOk && DbIdentity);
}
diff --git a/MagMan.UI/Health/Checks.cs b/MagMan.UI/Health/Checks.cs
index 4dfe5a1..8c112a9 100644
--- a/MagMan.UI/Health/Checks.cs
+++ b/MagMan.UI/Health/Checks.cs
@@ -1,12 +1,13 @@
-using MagMan.Data.DbModels;
+using MagMan.Data.Tenant.DbModels;
using MagMan.Data;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using NLog;
using Org.BouncyCastle.Pqc.Crypto.Lms;
using System.Net.NetworkInformation;
-using MagMan.User;
-using MagMan.User.DbModels;
+using MagMan.Data.Admin;
+using MagMan.Data.Admin.DbModels;
using Microsoft.EntityFrameworkCore;
+using MagMan.Data.Tenant;
namespace MagMan.UI.Health
{
@@ -25,7 +26,7 @@ namespace MagMan.UI.Health
using (var appDb = new UserIdentityDbContext())
{
string description = "Try check Table IdentityUsers";
- List recordList = new List();
+ List recordList = new List();
var healthCheckData = new Dictionary();
try
{
@@ -85,7 +86,7 @@ namespace MagMan.UI.Health
using (var adminDb = new AdminContext())
{
string description = "Try check MySql User table";
- List userList = new List();
+ List userList = new List();
var healthCheckData = new Dictionary();
try
{
diff --git a/MagMan.UI/MagMan.UI.csproj b/MagMan.UI/MagMan.UI.csproj
index 7ce14f2..a9e7c1a 100644
--- a/MagMan.UI/MagMan.UI.csproj
+++ b/MagMan.UI/MagMan.UI.csproj
@@ -44,14 +44,15 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
+
-
-
+
+
diff --git a/MagMan.UI/Pages/Index.razor.cs b/MagMan.UI/Pages/Index.razor.cs
index 60125d1..090aa2a 100644
--- a/MagMan.UI/Pages/Index.razor.cs
+++ b/MagMan.UI/Pages/Index.razor.cs
@@ -1,4 +1,4 @@
-using MagMan.Data.Services;
+using MagMan.Data.Tenant.Services;
using Microsoft.AspNetCore.Components;
using System;
diff --git a/MagMan.UI/Program.cs b/MagMan.UI/Program.cs
index c6f9588..3b6fdb2 100644
--- a/MagMan.UI/Program.cs
+++ b/MagMan.UI/Program.cs
@@ -1,22 +1,23 @@
-using MagMan.UI.Data;
-using Microsoft.AspNetCore.Components;
-using Microsoft.AspNetCore.Components.Web;
-using Microsoft.AspNetCore.Identity;
-using Microsoft.EntityFrameworkCore;
-using MagMan.Data;
-using Microsoft.AspNetCore.Localization;
-using System.Globalization;
-using Microsoft.AspNetCore.HttpOverrides;
-using StackExchange.Redis;
-using MagMan.Data.Services;
-using HealthChecks.UI.Client;
-using Microsoft.AspNetCore.Diagnostics.HealthChecks;
using Blazored.LocalStorage;
using Blazored.SessionStorage;
-using Microsoft.Extensions.Diagnostics.HealthChecks;
-using System.Configuration;
-using Microsoft.AspNetCore.Components.Authorization;
+using HealthChecks.UI.Client;
+using MagMan.Core;
+using MagMan.Core.Services;
+using MagMan.Data;
+using MagMan.Data.Admin;
+using MagMan.Data.Tenant;
+using MagMan.Data.Tenant.Services;
using MagMan.UI.Areas.Identity;
+using MagMan.UI.Data;
+using Microsoft.AspNetCore.Components.Authorization;
+using Microsoft.AspNetCore.Diagnostics.HealthChecks;
+using Microsoft.AspNetCore.HttpOverrides;
+using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Localization;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Diagnostics.HealthChecks;
+using StackExchange.Redis;
+using System.Globalization;
var builder = WebApplication.CreateBuilder(args);
@@ -37,14 +38,18 @@ builder.Services.AddSingleton(redisMultiplexer);
string dbServerAddr = builder.Configuration["DbConfig:Server"];
string nKey = builder.Configuration["DbConfig:nKey"];
string sKey = builder.Configuration["DbConfig:sKey"];
-MagMan.Data.DbConfig.InitDb(dbServerAddr, nKey, sKey);
-MagMan.User.DbConfig.InitDb(dbServerAddr, nKey, sKey);
+MagMan.Data.Admin.DbConfig.InitDb(dbServerAddr, nKey, sKey);
+MagMan.Data.Tenant.DbConfig.InitDb(dbServerAddr, nKey, sKey);
// inizializzo il DB e creo (se necessario) l'utente
-MagMan.User.DbConfig.CheckUser(nKey, sKey);
+MagMan.Data.Admin.DbConfig.CheckUser(nKey, sKey);
+
+// spostare e fare in caso nelle chiamate custom
+#if true
// verifico se serve applicazione migrazioni
-MagMan.Data.DbConfig.ExecMigrationMain();
+MagMan.Data.Tenant.DbConfig.ExecMigrationMain();
+#endif
//DbConfig.ExecMigrationIdentity();
-string connStringDB = DbConfig.CONNECTION_STRING;
+string connStringDB = MagMan.Data.Admin.DbConfig.CONNECTION_STRING;
// healthchecks
builder.Services.AddHealthChecks()
@@ -85,11 +90,11 @@ builder.Services.Configure(o =>
-builder.Services.AddDbContext(options =>
+builder.Services.AddDbContext(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)
- .AddEntityFrameworkStores();
+ .AddEntityFrameworkStores();
#if false
@@ -123,7 +128,7 @@ builder.Services.AddBlazoredLocalStorage();
builder.Services.AddBlazoredSessionStorage();
// gestione email
-builder.Services.Configure(builder.Configuration.GetSection(nameof(MailKitMailSettings)));
+builder.Services.Configure(builder.Configuration.GetSection(nameof(MailKitMailSettings)));
builder.Services.AddScoped();
builder.Services.AddHttpContextAccessor();
diff --git a/MagMan.UI/_Imports.razor b/MagMan.UI/_Imports.razor
index 698ee8b..105b4e4 100644
--- a/MagMan.UI/_Imports.razor
+++ b/MagMan.UI/_Imports.razor
@@ -7,11 +7,14 @@
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using MagMan.Core
+@using MagMan.Core.DTO
@using MagMan.Data
-@using MagMan.Data.DbModels
-@using MagMan.Data.Services
-@* @using MagMan.Data.DTO *@
-@using MagMan.Data.Services
+@using MagMan.Data.Admin
+@using MagMan.Data.Admin.DbModels
+@using MagMan.Data.Admin.Services
+@using MagMan.Data.Tenant
+@using MagMan.Data.Tenant.DbModels
+@using MagMan.Data.Tenant.Services
@using MagMan.UI
@using MagMan.UI.Shared
@using MagMan.UI.Components
diff --git a/MagMan.User/UserRoleConfiguration.cs b/MagMan.User/UserRoleConfiguration.cs
deleted file mode 100644
index ab563c7..0000000
--- a/MagMan.User/UserRoleConfiguration.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Microsoft.AspNetCore.Identity;
-using Microsoft.EntityFrameworkCore.Metadata.Builders;
-using Microsoft.EntityFrameworkCore;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MagMan.User
-{
- public class UserRoleConfiguration : IEntityTypeConfiguration
- {
- #region Public Methods
-
- public void Configure(EntityTypeBuilder builder)
- {
- builder.HasData(
- new IdentityRole { Name = "Undef", NormalizedName = "UNDEF" },
- //new IdentityRole { Name = "ExtUser", NormalizedName = "EXTUSER" },
- //new IdentityRole { Name = "ExtTransp", NormalizedName = "EXTTRANSP" },
- new IdentityRole { Name = "User", NormalizedName = "USER" },
- new IdentityRole { Name = "Admin", NormalizedName = "ADMIN" },
- new IdentityRole { Name = "SuperAdmin", NormalizedName = "SUPERADMIN" }
- );
- }
-
- #endregion Public Methods
- }
-}
diff --git a/README.md b/README.md
index 66b7181..889c395 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,45 @@ Il sofware è previsto in modalità **multi-tenant**, dove verrà generato un DB
Di base il sistema deve prevedere il riconoscimento degli utenti e/o dei software EgalWare licenziati e reindirizzare l'impiego delle funzionalità avanzate verso il DB dedicato al cliente.
+## Architettura
+
+Il progetto è pensato in architettura **multi-tenant** per la versione **online**, ovvero un unico indirizzo web (tramite load balancers x reverse proxy) che fornisce l'applicazione a tutti i clienti.
+
+Ogni cliente, facendo login, verrà riconosciuto e gli verrà fornita la partizione dati/DB di competenza del tenant secondo lo schema seguente:
+
+### Workflow
+
+Di seguito lo schema di funzionamento
+```mermaid
+flowchart TB
+ user(User Login\n web browser) --> ServerApp
+ egtbw(EgtB&W sw\n REST call) --> ServerApp
+
+ ServerApp{{magman.egalware.com}} --> multiTenant(Admin DB)
+ ServerApp --> clientData(Tenant DB Data)
+
+ multiTenant--> tenantMgmt(Clienti)
+ multiTenant--> MachMgmt(Macchine)
+ multiTenant--> KeyMgmt(Chiavi)
+ multiTenant--> UserMgmt(Utenti)
+
+ clientData --> MagData(Dati Magazzino)
+ clientData --> MachineData(Stato Impianto)
+ clientData --> LogData(Log Impianto)
+ clientData --> CommData(Stato Commesse)
+
+
+style ServerApp fill:#223999
+style multiTenant fill:#921111
+style clientData fill:#226919
+
+
+```
+
+In pratica le chiamate vengono inviate tutte al servizio web e da qui smistate per competenza e funzionalità verso i vari DB.
+
+A livello architetturale il progetto è separato tra la parte **Data.Admin** e **Data.Tenant**.
+
## Oggetti di base
Gli oggetti di abse sono i seguenti:
@@ -88,4 +127,6 @@ Ogni nuovo user dovrà poi essere associato al bucket del cliente tramite un cod
Version | Date | Editor | Note
:--: |----------|----- | ----:
+ 0.3 | 2024.01.10 | S.E. Locatelli | Revisione modalità multi-tenant
+ 0.2 | 2024.01.05 | S.E. Locatelli | update ruoli e workflow
0.1 | 2023.12.28 | S.E. Locatelli | Prima revisione documento
diff --git a/README.pdf b/README.pdf
index e21a504..a432f22 100644
Binary files a/README.pdf and b/README.pdf differ