using Kruzya.TelegramBot.Core; using Kruzya.TelegramBot.Core.Extensions; using Kruzya.TelegramBot.Core.Options; using Microsoft.Extensions.DependencyInjection; using West.TelegramBot.ContentStore.Option; using West.TelegramBot.ContentStore.Service; namespace West.TelegramBot.ContentStore; public class ContentStore : Module { public 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.GetInterface(nameof(IRandomMediaService)) != null)) { MediaServiceTypes.Add(exportedType); } } } public override void ConfigureServices(IServiceCollection services) { services.AddOption(); foreach (var serviceType in MediaServiceTypes) { services.AddScoped(typeof(IRandomMediaService), serviceType); } } }