From 81439cc2ad8834fd105e8a699312f494d7947d9f Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Tue, 17 Nov 2020 20:13:11 +0100 Subject: [PATCH] Add AutoMapper profile discovery support --- .../AutoMapperServiceCollectionExtensions.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/core/Elsa.Core/Extensions/AutoMapperServiceCollectionExtensions.cs b/src/core/Elsa.Core/Extensions/AutoMapperServiceCollectionExtensions.cs index 2448ea915..d55946ac0 100644 --- a/src/core/Elsa.Core/Extensions/AutoMapperServiceCollectionExtensions.cs +++ b/src/core/Elsa.Core/Extensions/AutoMapperServiceCollectionExtensions.cs @@ -1,4 +1,7 @@ using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; using AutoMapper; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -19,6 +22,13 @@ namespace Elsa.Extensions return services; } + public static IServiceCollection AddAutoMapperProfiles(this IServiceCollection services, IEnumerable assemblies) => + services.Scan(scan => scan.FromAssemblies(assemblies).AddClasses(classes => classes.AssignableTo()).As().WithTransientLifetime()); + + public static IServiceCollection AddAutoMapperProfiles(this IServiceCollection services, params Assembly[] assemblies) => services.AddAutoMapperProfiles(assemblies.AsEnumerable()); + public static IServiceCollection AddAutoMapperProfiles(this IServiceCollection services, Assembly assembly) => AddAutoMapperProfiles(services, new[] { assembly }); + public static IServiceCollection AddAutoMapperProfiles(this IServiceCollection services) => services.AddAutoMapperProfiles(typeof(TAssemblyMarkerType).Assembly); + public static IConfigurationProvider CreateAutoMapperConfiguration(this IServiceProvider serviceProvider) { var profiles = serviceProvider.GetServices();