diff --git a/modules/ContentStore/ContentStore.cs b/modules/ContentStore/ContentStore.cs index df6745e..1c3474f 100644 --- a/modules/ContentStore/ContentStore.cs +++ b/modules/ContentStore/ContentStore.cs @@ -1,20 +1,32 @@ -using Kruzya.TelegramBot.Core; +using System.Reflection; +using Kruzya.TelegramBot.Core; using Microsoft.Extensions.DependencyInjection; using West.TelegramBot.ContentStore.Service; +using Module = Kruzya.TelegramBot.Core.Module; namespace West.TelegramBot.ContentStore; public class ContentStore : Module { + private readonly List _mediaServiceTypes = new(); + 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) { - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); + foreach (var serviceType in _mediaServiceTypes) + { + services.AddSingleton(serviceType); + } } } \ No newline at end of file