Merge branch 'SDK' into develop

This commit is contained in:
Samuele Locatelli
2025-09-22 19:37:27 +02:00
16 changed files with 98 additions and 74 deletions
+12 -7
View File
@@ -51,12 +51,16 @@ namespace MagMan.Data.Admin
public static ServerVersion CustomAutoDetect(string connectionString)
{
#if false
using var connection = new MySqlConnection(
new MySqlConnectionStringBuilder(connectionString)
{
Database = string.Empty,
// AutoEnlist = false, Pooling = false,
}.ConnectionString);
new MySqlConnectionStringBuilder(connectionString)
{
Database = string.Empty,
// AutoEnlist = false, Pooling = false,
}.ConnectionString);
#endif
using var connection = new MySqlConnection(connectionString);
connection.Open();
ServerVersion currVers = ServerVersion.Parse(connection.ServerVersion);
return currVers;
@@ -82,15 +86,16 @@ namespace MagMan.Data.Admin
{
DATABASE_SERV = server;
// tutto fisso x gestione utenti
CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;";
CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;";
// stringa admin con utente admin dell'applicazione (già creato)...
ADMIN_CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database=mysql;uid=egalware;pwd=Egalware_24068!;sslmode=None;";
ADMIN_CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database=mysql;uid=egalware;pwd=Egalware_24068!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;";
}
public static ServerVersion MysqlServerVersion(string connString)
{
// fix come da https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/issues/1859
//Log.Info($"MysqlServerVersion | {connString}");
//ServerVersion serverVersion = ServerVersion.Parse("10.11.13-MariaDB");
ServerVersion serverVersion = ServerVersion.Parse("10.5.25-mysql");
bool versOk = false;
try
+2 -1
View File
@@ -51,7 +51,8 @@ namespace MagMan.Data.Admin
// commentato x test su cluster in ufficio
#if DEBUG
//connString = "Server=localhost;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;";
connString = "Server=mdb03.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;";
//connString = "Server=mdb03.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;";
connString = "Server=mdb.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;";
#endif
var serverVersion = DbConfig.MysqlServerVersion(connString);
optionsBuilder.UseMySql(connString, serverVersion);
+11 -8
View File
@@ -62,9 +62,8 @@ namespace MagMan.Data.Admin
// chiave cablata x gestione Server se fosse vuota...
if (string.IsNullOrEmpty(connString))
{
connString = "Server=localhost;port=3306;database=mysql;user=egalware;pwd=Egalware_24068!;sslmode=None;";
connString = "Server=localhost;port=3306;database=mysql;user=egalware;pwd=Egalware_24068!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;";
}
ServerVersion serverVersion = DbConfig.MysqlServerVersion(connString);
optionsBuilder.UseMySql(connString, serverVersion);
@@ -78,13 +77,17 @@ namespace MagMan.Data.Admin
public static ServerVersion CustomAutoDetect(string connectionString)
{
#if false
using var connection = new MySqlConnection(
new MySqlConnectionStringBuilder(connectionString)
{
Database = string.Empty,
// AutoEnlist = false,
// Pooling = false,
}.ConnectionString);
new MySqlConnectionStringBuilder(connectionString)
{
Database = string.Empty,
// AutoEnlist = false,
// Pooling = false,
}.ConnectionString);
#endif
using var connection = new MySqlConnection(connectionString);
connection.Open();
ServerVersion currVers = ServerVersion.Parse(connection.ServerVersion);
return currVers;
@@ -43,7 +43,6 @@ namespace MagMan.Data.Admin.Services
// chiudo log
Log.Info("MTAdminService started!");
_userManager = userManager;
}
#endregion Public Constructors
+11 -7
View File
@@ -34,12 +34,15 @@ namespace MagMan.Data.Tenant
public static ServerVersion CustomAutoDetect(string connectionString)
{
#if false
using var connection = new MySqlConnection(
new MySqlConnectionStringBuilder(connectionString)
{
Database = string.Empty,
// AutoEnlist = false, Pooling = false,
}.ConnectionString);
new MySqlConnectionStringBuilder(connectionString)
{
Database = string.Empty,
// AutoEnlist = false, Pooling = false,
}.ConnectionString);
#endif
using var connection = new MySqlConnection(connectionString);
connection.Open();
ServerVersion currVers = ServerVersion.Parse(connection.ServerVersion);
return currVers;
@@ -48,7 +51,7 @@ namespace MagMan.Data.Tenant
public static string CustomerConnString(string server, int nKey)
{
string dbName = $"MagMan_{nKey:000000}";
return $"server={server};port=3306;database={dbName};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=10;";
return $"server={server};port=3306;database={dbName};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;";
//LoadBalance=RoundRobin;Pooling=true;
}
@@ -64,7 +67,7 @@ namespace MagMan.Data.Tenant
{
DATABASE_SERV = server;
DATABASE_NAME = $"MagMan_{nKey:000000}";
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=10;";
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;";
//LoadBalance=RoundRobin;Pooling=true;
}
@@ -72,6 +75,7 @@ namespace MagMan.Data.Tenant
{
// fix come da https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/issues/1859
//Log.Info($"MysqlServerVersion | {connString}");
//ServerVersion serverVersion = ServerVersion.Parse("10.11.13-MariaDB");
ServerVersion serverVersion = ServerVersion.Parse("10.5.25-mysql");
bool versOk = false;
try
+1 -1
View File
@@ -32,7 +32,7 @@ namespace MagMan.Data.Tenant.DbModels
public int QtyAvail { get; set; } = 0;
/// <summary>
/// Bool for logical delete (clound and on PC...)
/// Bool for logical delete (cloud and on PC...)
/// </summary>
public bool IsDeleted { get; set; } = false;
+2 -1
View File
@@ -74,8 +74,9 @@ namespace MagMan.Data.Tenant
{
// commentato x test su cluster in ufficio
#if DEBUG
connString = "Server=localhost;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;";
//connString = "Server=localhost;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;";
////connString = "Server=mdb03.ufficio;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;";
connString = "Server=mdb.ufficio;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;";
#endif
var serverVersion = DbConfig.MysqlServerVersion(connString);
optionsBuilder.UseMySql(connString, serverVersion, options => options.EnableRetryOnFailure(
+1 -1
View File
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Version>1.0.2408.0514</Version>
<Version>1.0.2509.2219</Version>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
+35 -27
View File
@@ -59,29 +59,34 @@ string connStringDB = MagMan.Data.Admin.DbConfig.CONNECTION_STRING;
* ExecStart=/usr/bin/dotnet /var/www/magman/MagMan.UI.dll --urls "http://10.74.82.92:5005"
*
* */
// abilitazione blobale healthCheck...
bool enabHealth = builder.Configuration.GetValue<bool>("OptConf:EnableHealth");
if (enabHealth)
{
//string redisConnCheck = "redis.ufficio:26379, serviceName=devel, DefaultDatabase=13, connectTimeout=2000, syncTimeout=2000, asyncTimeout=2000, abortConnect=false, ssl=false, allowAdmin=true";
string redisConnCheck = "redis.ufficio:6378,DefaultDatabase=13,connectTimeout=2000,syncTimeout=2000,asyncTimeout=2000,abortConnect=false,ssl=false,allowAdmin=true";
builder.Services.AddHealthChecks()
.AddMySql(connStringDB, "MySql instance")
.AddAsyncCheck($"DB PING ({dbServerAddr})", () => MagMan.UI.Health.Checks.PingCheck(dbServerAddr))
.AddAsyncCheck($"Redis PING ({redisSrvAddr})", () => MagMan.UI.Health.Checks.PingCheck(redisSrvAddr))
// 512 MB max allocated memory
.AddProcessAllocatedMemoryHealthCheck(512, "Max Process memory (<512MB)", failureStatus: HealthStatus.Degraded)
//.AddRedis(builder.Configuration.GetConnectionString("Redis"), "Redis", failureStatus: HealthStatus.Degraded)
.AddRedis(redisConnCheck, "Redis", failureStatus: HealthStatus.Degraded)
.AddAsyncCheck($"MySql Identity", () => MagMan.UI.Health.Checks.DbIdentity(MagMan.Data.Admin.DbConfig.DATABASE_NAME))
.AddAsyncCheck($"MySql Customers", () => MagMan.UI.Health.Checks.CustomersCount())
;
builder.Services.AddHealthChecks()
.AddMySql(connStringDB, "MySql instance")
.AddAsyncCheck($"DB PING ({dbServerAddr})", () => MagMan.UI.Health.Checks.PingCheck(dbServerAddr))
.AddAsyncCheck($"Redis PING ({redisSrvAddr})", () => MagMan.UI.Health.Checks.PingCheck(redisSrvAddr))
// 512 MB max allocated memory
.AddProcessAllocatedMemoryHealthCheck(512, "Max Process memory (<512MB)", failureStatus: HealthStatus.Degraded)
.AddRedis(builder.Configuration.GetConnectionString("Redis"), "Redis", failureStatus: HealthStatus.Degraded)
.AddAsyncCheck($"MySql Identity", () => MagMan.UI.Health.Checks.DbIdentity(MagMan.Data.Admin.DbConfig.DATABASE_NAME))
.AddAsyncCheck($"MySql Customers", () => MagMan.UI.Health.Checks.CustomersCount())
;
builder.Services.AddHealthChecksUI(s =>
{
s.AddHealthCheckEndpoint("MagMan_Services", "health");
s.SetEvaluationTimeInSeconds(60);
s.SetMinimumSecondsBetweenFailureNotifications(120);
s.SetApiMaxActiveRequests(5);
s.SetHeaderText("MagMan Health Check Status");
})
.AddInMemoryStorage();
builder.Services.AddHealthChecksUI(s =>
{
s.AddHealthCheckEndpoint("MagMan_Services", "health");
s.SetEvaluationTimeInSeconds(60);
s.SetMinimumSecondsBetweenFailureNotifications(120);
s.SetApiMaxActiveRequests(5);
s.SetHeaderText("MagMan Health Check Status");
})
.AddInMemoryStorage();
}
// cookie applicazione da 14 gg (defaul) a 30
builder.Services.ConfigureApplicationCookie(o =>
@@ -179,12 +184,15 @@ app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapBlazorHub();
endpoints.MapHealthChecksUI();
endpoints.MapHealthChecks("/health", new HealthCheckOptions
if (enabHealth)
{
Predicate = _ => true,
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});
endpoints.MapHealthChecksUI();
endpoints.MapHealthChecks("/health", new HealthCheckOptions
{
Predicate = _ => true,
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});
}
endpoints.MapFallbackToPage("/_Host");
});
+5 -5
View File
@@ -8,11 +8,11 @@
},
"ConnectionStrings": {
"Redis": "localhost:26379, serviceName=prod-ovh, DefaultDatabase=14, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false",
"UserIdentityDbContextConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"AuthConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"DefaultConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"AdminConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"MagMan.Data": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;"
"UserIdentityDbContextConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"AuthConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"DefaultConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"AdminConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"MagMan.Data": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"
},
"DbConfig": {
"Server": "localhost",
+5 -5
View File
@@ -8,11 +8,11 @@
},
"ConnectionStrings": {
"Redis": "localhost:6379,DefaultDatabase=14,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false",
"UserIdentityDbContextConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"AuthConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"DefaultConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"AdminConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"MagMan.Data": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;"
"UserIdentityDbContextConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"AuthConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"DefaultConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"AdminConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"MagMan.Data": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"
},
"DbConfig": {
"Server": "localhost",
+1 -1
View File
@@ -7,7 +7,7 @@
}
},
"ConnectionStrings": {
"Redis": "redis01.ufficio:26379,serviceName=devel,DefaultDatabase=14,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false,allowAdmin=true"
"Redis": "redis.ufficio:26379,serviceName=devel,DefaultDatabase=14,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false,allowAdmin=true"
},
//"DbConfig": {
// "Server": "localhost",
+9 -6
View File
@@ -2,17 +2,19 @@
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.EntityFrameworkCore.Database.Command": "Debug",
"MySqlConnector": "Debug",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"Redis": "localhost:26379, redis01.ufficio:26379, redis02.ufficio:26379, serviceName=devel, DefaultDatabase=14, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, allowAdmin=true",
"UserIdentityDbContextConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"AuthConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"DefaultConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"AdminConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;",
"MagMan.Data": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;"
"Redis": "redis.ufficio:26379, serviceName=devel, DefaultDatabase=14, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, allowAdmin=true",
"UserIdentityDbContextConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"AuthConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"DefaultConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"AdminConnection": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;",
"MagMan.Data": "Server=localhost;port=3306;database=MagMan_Dev;user=MagMan;pwd=MagMan_secret_pwd;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"
},
"DbConfig": {
//"Server": "localhost",
@@ -25,6 +27,7 @@
"OptConf": {
"CodApp": "MagMan",
"NumPar": 4,
"EnableHealth": true,
"msRefresh": "4000",
"BaseAddr": "https://localhost:7207/",
"BaseAppPath": "",
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>MagMan - Wood Warehouse Management System</i>
<h4>Versione: 1.0.2408.0514</h4>
<h4>Versione: 1.0.2509.2219</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
1.0.2408.0514
1.0.2509.2219
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>1.0.2408.0514</version>
<version>1.0.2509.2219</version>
<url>http://nexus.steamware.net/repository/SWS/MagMan/stable/0/MagMan.UI.zip</url>
<changelog>http://nexus.steamware.net/repository/SWS/MagMan/stable/0/ChangeLog.html</changelog>
<mandatory>false</mandatory>