Files
CMS/src/CMSMicroservice.Application/ConfigureServices.cs
T
2025-09-27 08:46:36 +03:30

32 lines
1.3 KiB
C#

using System.Reflection;
using CMSMicroservice.Application.Common.Behaviours;
using MapsterMapper;
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;
}
}