Fix dipendenze servizi
This commit is contained in:
+36
-4
@@ -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>();
|
||||
|
||||
Reference in New Issue
Block a user