erp-platform/api/modules/Erp.Sender/WhatsApp/ErpWhatsAppSender.cs

45 lines
1.4 KiB
C#
Raw Normal View History

2025-05-06 06:45:49 +00:00
using Microsoft.Extensions.Logging;
using Volo.Abp.DependencyInjection;
2025-11-11 19:49:52 +00:00
namespace Erp.Sender.WhatsApp;
2025-05-06 06:45:49 +00:00
2025-11-11 19:49:52 +00:00
public interface IErpWhatsAppSender : ITransientDependency
2025-05-06 06:45:49 +00:00
{
Task<WhatsAppSendResult> SendAsync(string To, string Message, string LanguageCode = "tr");
}
2025-11-11 19:49:52 +00:00
public class ErpWhatsAppSender : IErpWhatsAppSender
2025-05-06 06:45:49 +00:00
{
private readonly IWhatsAppHttpClient httpClient;
2025-11-11 19:49:52 +00:00
private readonly ILogger<ErpWhatsAppSender> logger;
2025-05-06 06:45:49 +00:00
2025-11-11 19:49:52 +00:00
public ErpWhatsAppSender(
2025-05-06 06:45:49 +00:00
IWhatsAppHttpClient httpClient,
2025-11-11 19:49:52 +00:00
ILogger<ErpWhatsAppSender> logger)
2025-05-06 06:45:49 +00:00
{
this.httpClient = httpClient;
this.logger = logger;
}
public async Task<WhatsAppSendResult> 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,
};
}
}
2025-11-11 19:49:52 +00:00