using Microsoft.Extensions.Logging; using Volo.Abp.DependencyInjection; namespace Sozsoft.Sender.Telegram; public interface ISozsoftTelegramSender : ITransientDependency { Task SendAsync(string ChatId, string Message); } public class SozsoftTelegramSender : ISozsoftTelegramSender { private readonly ITelegramHttpClient httpClient; private readonly ILogger logger; public SozsoftTelegramSender( ITelegramHttpClient httpClient, ILogger logger) { this.httpClient = httpClient; this.logger = logger; } public async Task SendAsync(string ChatId, string Message) { logger.LogInformation("Sending Telegram message. {ChatId}, {Message}", ChatId, Message); var result = await httpClient.SendMessageAsync(ChatId, Message); var success = result?.ok == true; if (success) { logger.LogInformation("Telegram sent successfully. {ChatId}, {Message}", ChatId, Message); } else { logger.LogWarning("Failed to send Telegram message. {ChatId}, {Message}, {ErrorCode}, {Description}", ChatId, Message, result?.error_code, result?.description); } return new TelegramSendResult { Success = success, }; } }