Files
telegram-bot/modules/ContentStore/ContentStore.cs
T

32 lines
959 B
C#

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<Type> _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)
{
foreach (var serviceType in _mediaServiceTypes)
{
services.AddSingleton(serviceType);
}
}
}