🚧 Add modules to DI, rename classes

This commit is contained in:
2020-03-02 08:49:57 +04:00
parent 1299e4dc7e
commit dc2307d74e
5 changed files with 60 additions and 55 deletions
+1 -1
View File
@@ -151,7 +151,7 @@ namespace Kruzya.TelegramBot.Core
if (module == null) if (module == null)
{ {
module = (Module) Activator.CreateInstance(moduleType, this); module = (Module) Activator.CreateInstance(moduleType, this);
Console.WriteLine($"Started module {module.GetType().FullName}"); Console.WriteLine($"Started module {module.GetType().Name}");
_modules.Add(module); _modules.Add(module);
} }
+5
View File
@@ -24,7 +24,12 @@ namespace Kruzya.TelegramBot.Core
{ {
services.AddTelegramBot(); services.AddTelegramBot();
services.AddLogging(builder => builder.AddConsole()); services.AddLogging(builder => builder.AddConsole());
// Add all modules to DI with Core instance.
services.AddSingleton<Core>(_core);
foreach (var module in _core.Modules) services.AddSingleton(module.GetType(), module);
// Trigger module handlers.
_core.Modules.ConfigureServices(services); _core.Modules.ConfigureServices(services);
} }
@@ -1,18 +1,18 @@
using Kruzya.TelegramBot.CombotAntiSpam.Combot; using Kruzya.TelegramBot.CombotAntiSpam.Combot;
using Kruzya.TelegramBot.Core; using Kruzya.TelegramBot.Core;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace Kruzya.TelegramBot.CombotAntiSpam namespace Kruzya.TelegramBot.CombotAntiSpam
{ {
public class Startup : Module public class CombotAntiSpam : Module
{ {
public Startup(Core.Core core) : base(core) public CombotAntiSpam(Core.Core core) : base(core)
{ {
} }
public override void ConfigureServices(IServiceCollection services) public override void ConfigureServices(IServiceCollection services)
{ {
services.AddSingleton<ICombotClient, CombotClient>(); services.AddSingleton<ICombotClient, CombotClient>();
} }
} }
} }
@@ -1,36 +1,36 @@
using System; using System;
using BotFramework; using BotFramework;
using Kruzya.TelegramBot.Core; using Kruzya.TelegramBot.Core;
using Kruzya.TelegramBot.Core.Extensions; using Kruzya.TelegramBot.Core.Extensions;
using Kruzya.TelegramBot.RichSiteSummary.Data; using Kruzya.TelegramBot.RichSiteSummary.Data;
using Kruzya.TelegramBot.RichSiteSummary.Service; using Kruzya.TelegramBot.RichSiteSummary.Service;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Telegram.Bot.Types; using Telegram.Bot.Types;
namespace Kruzya.TelegramBot.RichSiteSummary namespace Kruzya.TelegramBot.RichSiteSummary
{ {
public class Startup : Module public class RichSiteSummary : Module
{ {
public Startup(Core.Core core) : base(core) public RichSiteSummary(Core.Core core) : base(core)
{ {
} }
public override void ConfigureServices(IServiceCollection services) public override void ConfigureServices(IServiceCollection services)
{ {
services.AddDbContext<RichSiteSummaryContext>(options => services.AddDbContext<RichSiteSummaryContext>(options =>
options.UseLazyLoadingProxies() options.UseLazyLoadingProxies()
.UseMySql(Configuration.GetConnectionString("RichSiteSummary"))); .UseMySql(Configuration.GetConnectionString("RichSiteSummary")));
services.AddTelegramBotParameterParser<Feed, DbResolverParameter<Feed, RichSiteSummaryContext>>() services.AddTelegramBotParameterParser<Feed, DbResolverParameter<Feed, RichSiteSummaryContext>>()
.AddTelegramBotParameterParser<Post, DbResolverParameter<Post, RichSiteSummaryContext>>() .AddTelegramBotParameterParser<Post, DbResolverParameter<Post, RichSiteSummaryContext>>()
.AddTelegramBotParameterParser<Subscriber, DbResolverParameter<Subscriber, RichSiteSummaryContext>>(); .AddTelegramBotParameterParser<Subscriber, DbResolverParameter<Subscriber, RichSiteSummaryContext>>();
services.AddQueue<UserMessage>() services.AddQueue<UserMessage>()
.AddQueue<UserUnsubscribe>(); .AddQueue<UserUnsubscribe>();
services.AddHostedService<RssFetch>(); services.AddHostedService<RssFetch>();
} }
} }
} }
@@ -7,7 +7,7 @@ using Telegram.Bot.Types;
namespace Kruzya.TelegramBot.RichSiteSummary namespace Kruzya.TelegramBot.RichSiteSummary
{ {
public static class RichSiteSummaryRepositoryExtension internal static class RichSiteSummaryRepositoryExtension
{ {
#region Subscriber #region Subscriber