Files
mapo-core/MP.Data/DataServiceCollectionExtensions.cs
T
2026-06-03 12:21:45 +02:00

122 lines
4.7 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using MP.AppAuth.Controllers;
using MP.AppAuth.Services;
using MP.Data.Controllers;
using MP.Data.Repository.Anag;
using MP.Data.Repository.Dossier;
using MP.Data.Repository.FluxLog;
using MP.Data.Repository.IOC;
using MP.Data.Repository.MpLand;
using MP.Data.Repository.MpMon;
using MP.Data.Repository.MpVoc;
using MP.Data.Repository.Mtc;
using MP.Data.Repository.Production;
using MP.Data.Repository.System;
using MP.Data.Repository.Utils;
using MP.Data.Services;
using MP.Data.Services.IOC;
using MP.Data.Services.Mtc;
using MP.Data.Services.Utils;
namespace MP.Data
{
public static class DataServiceCollectionExtensions
{
/// <summary>
/// Aggiunta repository/servizi specifici per IOC
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public static IServiceCollection AddIocDataLayer(this IServiceCollection services)
{
// Repository Singleton
services.TryAddSingleton<IMtcSetupRepository, MtcSetupRepository>();
// Repository Scoped
services.TryAddScoped<IIocRepository, IocRepository>();
services.TryAddScoped<IStatsAggrRepository, StatsAggrRepository>();
services.TryAddScoped<IStatsDetailRepository, StatsDetailRepository>();
// Servizi Singleton
services.TryAddSingleton<IMtcSetupService, MtcSetupService>();
services.TryAddSingleton<MpIocController>();
// Servizi Scoped
services.TryAddScoped<IIocService, IocService>();
services.TryAddScoped<IStatsAggrService, StatsAggrService>();
services.TryAddScoped<IStatsDetailService, StatsDetailService>();
return services;
}
/// <summary>
/// Aggiunta repository/servizi specifici per LAND
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public static IServiceCollection AddLandDataLayer(this IServiceCollection services)
{
services.TryAddSingleton<IMpLandRepository, MpLandRepository>();
services.TryAddSingleton<SyncService>();
services.TryAddSingleton<TabDataService>();
services.TryAddSingleton<LandDataService>();
return services;
}
/// <summary>
/// Aggiunta repository/servizi specifici per MON
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public static IServiceCollection AddMonDataLayer(this IServiceCollection services)
{
services.TryAddSingleton<IMpMonRepository, MpMonRepository>();
services.TryAddSingleton<MonDataFeeder>();
return services;
}
/// <summary>
/// Aggiunta repository/servizi specifici per SPEC
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public static IServiceCollection AddSpecDataLayer(this IServiceCollection services)
{
// ---------- Start Repository ----------
services.TryAddScoped<IAnagRepository, AnagRepository>();
services.TryAddScoped<IProductionRepository, ProductionRepository>();
services.TryAddScoped<IDossierRepository, DossierRepository>();
services.TryAddScoped<IFluxLogRepository, FluxLogRepository>();
services.TryAddScoped<ISystemRepository, SystemRepository>();
services.TryAddScoped<IMpMonRepository, MpMonRepository>();
services.TryAddScoped<IMpVocRepository, MpVocRepository>();
services.TryAddScoped<IMpLandRepository, MpLandRepository>();
// ---------- End Repository ----------
// ---------- Start Servizi ----------
//services.TryAddSingleton<MpDataService>();
// ---------- End Servizi ----------
// ---------- Start Altro ----------
services.TryAddScoped<AppAuthController>();
services.TryAddScoped<MPController>();
services.TryAddScoped<AppUserController>();
services.TryAddScoped<AppAuthService>();
services.TryAddScoped<OrderDataSrv>();
services.TryAddScoped<ListSelectDataSrv>();
services.TryAddSingleton<SharedMemService>();
services.TryAddSingleton<TabDataService>();
services.TryAddScoped<TabDataFeeder>();
services.AddScoped<ISessionStorageService, SessionStorageService>();
services.AddScoped<ILocalStorageService, LocalStorageService>();
// ---------- End Altro ----------
return services;
}
}
}