33 lines
1.3 KiB
C#
33 lines
1.3 KiB
C#
using BackOffice.BFF.Application.Common.Behaviours;
|
|
using MapsterMapper;
|
|
using System.Reflection;
|
|
|
|
namespace Microsoft.Extensions.DependencyInjection;
|
|
|
|
public static class ConfigureServices
|
|
{
|
|
public static IServiceCollection AddApplicationServices(this IServiceCollection services)
|
|
{
|
|
services.AddMapping();
|
|
services.AddValidatorsFromAssembly(Assembly.GetExecutingAssembly());
|
|
services.AddMediatR(AppDomain.CurrentDomain.GetAssemblies());
|
|
|
|
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(UnhandledExceptionBehaviour<,>));
|
|
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationBehaviour<,>));
|
|
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(PerformanceBehaviour<,>));
|
|
|
|
return services;
|
|
}
|
|
private static IServiceCollection AddMapping(this IServiceCollection services)
|
|
{
|
|
var typeAdapterConfig = TypeAdapterConfig.GlobalSettings;
|
|
// scans the assembly and gets the IRegister, adding the registration to the TypeAdapterConfig
|
|
typeAdapterConfig.Scan(Assembly.GetExecutingAssembly());
|
|
// register the mapper as Singleton service for my application
|
|
var mapperConfig = new Mapper(typeAdapterConfig);
|
|
services.AddSingleton<IMapper>(mapperConfig);
|
|
return services;
|
|
}
|
|
}
|
|
|