Files
ChatBot/ChatBot/Services/TelegramBotHostedService.cs
Leonid Pershin 5027d16f78 add db
2025-10-17 00:54:31 +03:00

47 lines
1.5 KiB
C#

using ChatBot.Services.Telegram.Interfaces;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace ChatBot.Services
{
/// <summary>
/// Hosted service wrapper for TelegramBotService to handle scoped dependencies
/// </summary>
public class TelegramBotHostedService : IHostedService
{
private readonly IServiceProvider _serviceProvider;
private readonly ILogger<TelegramBotHostedService> _logger;
private ITelegramBotService? _botService;
public TelegramBotHostedService(
IServiceProvider serviceProvider,
ILogger<TelegramBotHostedService> logger
)
{
_serviceProvider = serviceProvider;
_logger = logger;
}
public async Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Starting Telegram Bot Hosted Service...");
using var scope = _serviceProvider.CreateScope();
_botService = scope.ServiceProvider.GetRequiredService<ITelegramBotService>();
await _botService.StartAsync(cancellationToken);
}
public async Task StopAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Stopping Telegram Bot Hosted Service...");
if (_botService != null)
{
await _botService.StopAsync(cancellationToken);
}
}
}
}