mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
Use file-scoped namespaces
This commit is contained in:
+50
-51
@@ -14,57 +14,56 @@ using System.Collections.Concurrent;
|
||||
using Kruzya.TelegramBot.Core.Options;
|
||||
using Telegram.Bot.Types;
|
||||
|
||||
namespace Kruzya.TelegramBot.Core
|
||||
namespace Kruzya.TelegramBot.Core;
|
||||
|
||||
public class Startup
|
||||
{
|
||||
public class Startup
|
||||
private Core _core;
|
||||
|
||||
public Startup(IConfiguration configuration)
|
||||
{
|
||||
private Core _core;
|
||||
|
||||
public Startup(IConfiguration configuration)
|
||||
{
|
||||
// TODO: add Core to DI.
|
||||
_core = new Core(configuration);
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddTelegramBot();
|
||||
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);
|
||||
|
||||
// Add database context to DI.
|
||||
var connectionString = _core.Configuration.GetConnectionString("DefaultConnection");
|
||||
services.AddDbContext<CoreContext>(ctx =>
|
||||
ctx.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)));
|
||||
|
||||
// Cache for users.
|
||||
services.AddSingleton<ICacheStorage<long, User>, MemoryCache<long, User>>();
|
||||
|
||||
services.AddSingleton<UserService>();
|
||||
services.AddSingleton<IAntiFlood, MemoryAntiFloodService>();
|
||||
|
||||
services.AddSingleton<ThreadSafeRandom>();
|
||||
|
||||
|
||||
services.AddSingleton<ConcurrentBag<DeleteRequest>>();
|
||||
services.AddHostedService<DeleteService>();
|
||||
|
||||
services.AddScoped<IOptionProvider, DbOptionProvider>();
|
||||
services.AddHttpClient();
|
||||
|
||||
// Trigger module handlers.
|
||||
_core.Modules.ConfigureServices(services);
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||
{
|
||||
_core.Modules.Configure(app, env);
|
||||
}
|
||||
// TODO: add Core to DI.
|
||||
_core = new Core(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddTelegramBot();
|
||||
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);
|
||||
|
||||
// Add database context to DI.
|
||||
var connectionString = _core.Configuration.GetConnectionString("DefaultConnection");
|
||||
services.AddDbContext<CoreContext>(ctx =>
|
||||
ctx.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)));
|
||||
|
||||
// Cache for users.
|
||||
services.AddSingleton<ICacheStorage<long, User>, MemoryCache<long, User>>();
|
||||
|
||||
services.AddSingleton<UserService>();
|
||||
services.AddSingleton<IAntiFlood, MemoryAntiFloodService>();
|
||||
|
||||
services.AddSingleton<ThreadSafeRandom>();
|
||||
|
||||
|
||||
services.AddSingleton<ConcurrentBag<DeleteRequest>>();
|
||||
services.AddHostedService<DeleteService>();
|
||||
|
||||
services.AddScoped<IOptionProvider, DbOptionProvider>();
|
||||
services.AddHttpClient();
|
||||
|
||||
// Trigger module handlers.
|
||||
_core.Modules.ConfigureServices(services);
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||
{
|
||||
_core.Modules.Configure(app, env);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user