First Commit
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
using ADS.Helpers.Middleware.ADSException;
|
||||
using ADS.Helpers.Middleware.Http;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace ADS.Helpers.Middleware.ADSExtensions;
|
||||
|
||||
public static class AdsApiResponseExtensions
|
||||
{
|
||||
public static IServiceCollection AddAdsApiResponse(
|
||||
this IServiceCollection services,
|
||||
IConfiguration configuration)
|
||||
{
|
||||
// Leer configuración desde appsettings de la API
|
||||
services.Configure<LoggingOptions>(
|
||||
configuration.GetSection("LoggingOptions"));
|
||||
|
||||
services.AddSingleton<IAdsErrorLogger, FileAdsErrorLogger>();
|
||||
|
||||
services.AddControllers(o =>
|
||||
{
|
||||
o.Filters.Add<ApiResponseWrapFilter>();
|
||||
});
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IApplicationBuilder UseAdsApiResponse(this IApplicationBuilder app)
|
||||
{
|
||||
app.UseMiddleware<AdsExceptionMiddleware>();
|
||||
return app;
|
||||
}
|
||||
}
|
||||
76
Helpers/ADS.Helpers.Middleware/Extensions/AdsExtensions.cs
Normal file
76
Helpers/ADS.Helpers.Middleware/Extensions/AdsExtensions.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using ADS.Helpers.Middleware.Tenant;
|
||||
using ADS.Helpers.Middleware.Logging;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using ADS.Helpers.MultiTenant.Abstractions;
|
||||
using ADS.Helpers.MultiTenant.Resolvers;
|
||||
using ADS.Helpers.MultiTenant.Context;
|
||||
using ADS.Helpers.Base.Abstractions;
|
||||
using ADS.Helpers.MultiTenant.Configuration;
|
||||
using ADS.Helpers.MultiTenant.Stores;
|
||||
using ADS.Helpers.Middleware.InternalUser;
|
||||
|
||||
namespace ADS.Helpers.Middleware.Extensions;
|
||||
|
||||
public static class AdsExtensions
|
||||
{
|
||||
// IServiceCollection extensions
|
||||
public static IServiceCollection AddAdsLogging(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
//services.AddLogging();
|
||||
|
||||
// Ejemplo si tenías esto:
|
||||
services.AddSingleton<IAppLogger, DefaultAppLogger>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddAdsMultiTenant(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
// Aquí va lo que ya tengas para tenant: options, accessor, resolver, etc.
|
||||
services.Configure<TenantOptions>(configuration.GetSection("MultiTenant"));
|
||||
services.AddSingleton<ITenantContextAccessor, TenantContextAccessor>();
|
||||
// services.AddSingleton<ITenantStore, InMemoryTenantStore>();// reemplazado por ConfigurationTenantStore
|
||||
services.AddSingleton<ITenantStore, ConfigurationTenantStore>();
|
||||
services.AddScoped<ITenantResolver, HeaderTenantResolver>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddAdsMiddlewares(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
// Si este método es solo un "orquestador" de otros registros:
|
||||
services.AddAdsLogging(configuration);
|
||||
services.AddAdsMultiTenant(configuration);
|
||||
|
||||
// Y aquí agregas otros (ExceptionHandling, CorrelationId, etc.)
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
// IApplicationBuilder extensions
|
||||
public static IApplicationBuilder UseAdsTenant(this IApplicationBuilder app)
|
||||
{
|
||||
return app.UseMiddleware<TenantMiddleware>();
|
||||
}
|
||||
|
||||
public static IApplicationBuilder UseAdsMiddlewares(this IApplicationBuilder app)
|
||||
{
|
||||
// Orden típico: errores/correlation/tenant/etc (según tu diseño)
|
||||
app.UseAdsTenant();
|
||||
return app;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddAdsInternalUser(this IServiceCollection services)
|
||||
{
|
||||
services.AddScoped<IInternalUserContextAccessor, InternalUserContextAccessor>();
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IApplicationBuilder UseAdsInternalUser(this IApplicationBuilder app)
|
||||
{
|
||||
return app.UseMiddleware<InternalUserContextMiddleware>();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user