Fix dipendenze servizi

This commit is contained in:
2026-09-08 17:57:45 +02:00
parent 94e36d1524
commit 5bcf9d1409
5 changed files with 56 additions and 6 deletions
+36 -4
View File
@@ -1,12 +1,16 @@
using EgwCoreLib.Lux.Data;
using EgwCoreLib.Lux.Data;
using EgwCoreLib.Lux.Data.Services.General;
using EgwCoreLib.Lux.Data.Services.Internal;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Caching.Distributed;
using NLog;
using NLog.Web;
using StackExchange.Redis;
using System.Reflection;
using Test.UI.Components;
using ZiggyCreatures.Caching.Fusion;
using ZiggyCreatures.Caching.Fusion.Backplane.StackExchangeRedis;
using ZiggyCreatures.Caching.Fusion.Serialization.NewtonsoftJson;
var builder = WebApplication.CreateBuilder(args);
@@ -26,12 +30,28 @@ builder.Services.AddRazorComponents()
// costruzione connectionMultiplexer redis...
string connStr = configuration.GetConnectionString("Redis") ?? "localhost";
ConnectionMultiplexer redisConn = ConnectionMultiplexer.Connect(connStr);
IConnectionMultiplexer redisMPlexer = ConnectionMultiplexer.Connect(connStr);
// ✅ Distributed cache (necessario per FusionCache)
builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = connStr;
});
// ✅ FusionCache
builder.Services.AddFusionCache()
.WithDistributedCache(sp => sp.GetRequiredService<IDistributedCache>())
.WithSerializer(new FusionCacheNewtonsoftJsonSerializer())
.WithBackplane(new RedisBackplane(new RedisBackplaneOptions
{
ConnectionMultiplexerFactory = () => Task.FromResult(redisMPlexer)
}));
// registrazione in blocco servizi con metodo extension custom
var connectionString = builder.Configuration.GetConnectionString("Lux.All") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
var conn = builder.Configuration.GetConnectionString("Lux.All");
builder.Services.AddDbContextFactory<DataLayerContext>(options =>
{
var conn = builder.Configuration.GetConnectionString("Lux.All");
options.UseMySql(conn, ServerVersion.AutoDetect(conn), mySqlOptions =>
{
mySqlOptions.EnableStringComparisonTranslations();
@@ -40,9 +60,21 @@ builder.Services.AddDbContextFactory<DataLayerContext>(options =>
.EnableDetailedErrors(false)
.LogTo(_ => { }); // disabilita EF logging;
});
builder.Services.AddDbContextFactory<ReportContext>(options =>
{
options.UseMySql(conn, ServerVersion.AutoDetect(conn), mySqlOptions =>
{
mySqlOptions.EnableStringComparisonTranslations();
})
.EnableSensitiveDataLogging(false)
.EnableDetailedErrors(true);
//.LogTo(_ => { }, Microsoft.Extensions.Logging.LogLevel.None); // disabilita EF logging
});
builder.Services.AddLuxData(connectionString);
// registro connMultiplexer REDIS
builder.Services.AddSingleton<IConnectionMultiplexer>(redisConn);
builder.Services.AddSingleton<IConnectionMultiplexer>(redisMPlexer);
// registro wrapper servizi REDIS
builder.Services.AddSingleton<IRedisService, RedisService>();
builder.Services.AddSingleton<RedisSubscriptionManager>();