mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
[store] Refactor service registration mechanism.
This commit is contained in:
@@ -1,20 +1,32 @@
|
|||||||
using Kruzya.TelegramBot.Core;
|
using System.Reflection;
|
||||||
|
using Kruzya.TelegramBot.Core;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using West.TelegramBot.ContentStore.Service;
|
using West.TelegramBot.ContentStore.Service;
|
||||||
|
using Module = Kruzya.TelegramBot.Core.Module;
|
||||||
|
|
||||||
namespace West.TelegramBot.ContentStore;
|
namespace West.TelegramBot.ContentStore;
|
||||||
|
|
||||||
public class ContentStore : Module
|
public class ContentStore : Module
|
||||||
{
|
{
|
||||||
|
private readonly List<Type> _mediaServiceTypes = new();
|
||||||
|
|
||||||
public ContentStore(Core core) : base(core)
|
public ContentStore(Core core) : base(core)
|
||||||
{
|
{
|
||||||
|
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||||
|
{
|
||||||
|
foreach (var exportedType in assembly.GetExportedTypes()
|
||||||
|
.Where(t => !t.IsAbstract && t.IsSubclassOf(typeof(IRandomMediaService))))
|
||||||
|
{
|
||||||
|
_mediaServiceTypes.Add(exportedType);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ConfigureServices(IServiceCollection services)
|
public override void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddSingleton<OBoobsService>();
|
foreach (var serviceType in _mediaServiceTypes)
|
||||||
services.AddSingleton<CatApiService>();
|
{
|
||||||
services.AddSingleton<DogApiService>();
|
services.AddSingleton(serviceType);
|
||||||
services.AddSingleton<AnimBoobsService>();
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user