Ensured the assembly scanner picks up shared and core components
continuous-integration/drone/pr Build is passing

This commit is contained in:
Khwezi Mngoma
2026-06-09 21:52:31 +02:00
parent e7f02eca9b
commit 11dfd18a44
5 changed files with 18 additions and 5 deletions
@@ -14,7 +14,7 @@ builder.Services.AddScopedFeatureManagement();
builder.Services builder.Services
.AddLogging() .AddLogging()
.AddShopServices() .AddShopServices()
.AddHostedService<ProductsSeederService>() .AddHostedService<ProductsSeederService>()
.AddHostedService<CategorySeederService>() .AddHostedService<CategorySeederService>()
.AddHostedService<CustomerSeederService>() .AddHostedService<CustomerSeederService>()
@@ -1,5 +1,7 @@
using LiteCharms.Features.Extensions; using LiteCharms.Features.Extensions;
using LiteCharms.Features.MidrandBooks.Abstractions;
using LiteCharms.Features.MidrandBooks.Extensions; using LiteCharms.Features.MidrandBooks.Extensions;
using Microsoft.VisualStudio.TestPlatform.TestHost;
namespace LiteCharms.Features.MidrandBooks.Tests.Common; namespace LiteCharms.Features.MidrandBooks.Tests.Common;
@@ -0,0 +1,3 @@
namespace LiteCharms.Features.MidrandBooks.Abstractions;
public interface IMidrandBooks;
@@ -1,18 +1,23 @@
using LiteCharms.Features.Abstractions; using LiteCharms.Features.Abstractions;
using LiteCharms.Features.MidrandBooks.Abstractions;
namespace LiteCharms.Features.MidrandBooks.Extensions; namespace LiteCharms.Features.MidrandBooks.Extensions;
public static class Shop public static class Shop
{ {
public static IServiceCollection AddShopServices(this IServiceCollection services, Assembly assembly) public static IServiceCollection AddShopServices(this IServiceCollection services)
{ {
var serviceType = typeof(IService); var serviceType = typeof(IService);
var implementations = assembly.GetTypes() var sharedImplementations = typeof(IFeatures).Assembly.GetTypes()
.Where(t => serviceType.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract); .Where(t => serviceType.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract);
foreach (var implementation in implementations) foreach (var sharedImplementation in sharedImplementations) services.AddScoped(sharedImplementation);
services.AddScoped(implementation);
var coreImplementations = typeof(IMidrandBooks).Assembly.GetTypes()
.Where(t => serviceType.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract);
foreach (var coreImplementation in coreImplementations) services.AddScoped(coreImplementation);
return services; return services;
} }
@@ -0,0 +1,3 @@
namespace LiteCharms.Features.Abstractions;
public interface IFeatures;