29 lines
1.0 KiB
C#
29 lines
1.0 KiB
C#
using LiteCharms.Features.Abstractions;
|
|
using LiteCharms.Features.Browser;
|
|
using LiteCharms.Features.MidrandBooks.Abstractions;
|
|
|
|
namespace LiteCharms.Features.MidrandBooks.Extensions;
|
|
|
|
public static class Shop
|
|
{
|
|
public static IServiceCollection AddShopServices(this IServiceCollection services, bool includeLocalStorage = false)
|
|
{
|
|
var serviceType = typeof(IService);
|
|
|
|
var sharedImplementations = typeof(IFeatures).Assembly.GetTypes()
|
|
.Where(t => serviceType.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract);
|
|
|
|
foreach (var sharedImplementation in sharedImplementations) services.AddScoped(sharedImplementation);
|
|
|
|
var coreImplementations = typeof(IMidrandBooks).Assembly.GetTypes()
|
|
.Where(t => serviceType.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract);
|
|
|
|
foreach (var coreImplementation in coreImplementations) services.AddScoped(coreImplementation);
|
|
|
|
if (includeLocalStorage)
|
|
services.AddScoped<LocalStorageService>();
|
|
|
|
return services;
|
|
}
|
|
}
|