ServiceCollectionExtensions.cs 561 B

12345678910111213141516171819202122
  1. using System.Reflection;
  2. using Microsoft.Extensions.DependencyInjection;
  3. namespace RackPeek.Domain;
  4. public static class ServiceCollectionExtensions
  5. {
  6. public static IServiceCollection AddUseCases(
  7. this IServiceCollection services)
  8. {
  9. var usecases = Assembly.GetAssembly(typeof(IUseCase))
  10. ?.GetTypes()
  11. .Where(t =>
  12. !t.IsAbstract &&
  13. typeof(IUseCase).IsAssignableFrom(t)
  14. );
  15. foreach (var type in usecases) services.AddScoped(type);
  16. return services;
  17. }
  18. }