#nullable enable using BotFramework.Abstractions.UpdateProvider; using BotFramework.Config; using Microsoft.Extensions.Options; using System.Threading; using System.Threading.Tasks; using Telegram.Bot; namespace Kruzya.TelegramBot.Core { public class WebhookAspNetProvider : IWebhookProvider { private readonly ITelegramBotClient _client; private readonly BotConfig _config; private readonly string? _secretToken; public WebhookAspNetProvider(ITelegramBotClient client, IOptions config) { _client = client; _config = config.Value; _secretToken = _config.Webhook.SecretToken; if (string.IsNullOrWhiteSpace(_secretToken)) { _secretToken = null; } } public async Task StartAsync(CancellationToken token) { await _client.SetWebhook(_config.Webhook.Url, secretToken: _secretToken, cancellationToken: token); } public async Task StopAsync(CancellationToken token) { await _client.DeleteWebhook(cancellationToken: token); } } }