using Microsoft.Extensions.Logging; using Volo.Abp.DependencyInjection; namespace Erp.Sender.WhatsApp; public interface IErpWhatsAppSender : ITransientDependency { Task SendAsync(string To, string Message, string LanguageCode = "tr"); } public class ErpWhatsAppSender : IErpWhatsAppSender { private readonly IWhatsAppHttpClient httpClient; private readonly ILogger logger; public ErpWhatsAppSender( IWhatsAppHttpClient httpClient, ILogger logger) { this.httpClient = httpClient; this.logger = logger; } public async Task SendAsync(string To, string Message, string LanguageCode = "tr") { logger.LogInformation("WhatsApp gönderiliyor. {To}, {LanguageCode}, {Message}", To, LanguageCode, Message); var result = await httpClient.SendMessageAsync(To, Message, LanguageCode); var success = !result.messages.IsNullOrEmpty() && result.messages.FirstOrDefault()?.message_status == "accepted"; if (success) { logger.LogInformation("WhatsApp gönderildi. {To}, {LanguageCode}, {Message}", To, LanguageCode, Message); } else { logger.LogWarning("WhatsApp gönderilemedi. {To}, {LanguageCode}, {Message}", To, LanguageCode, Message); } return new WhatsAppSendResult { Success = success, }; } }