44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using Volo.Abp.DependencyInjection;
|
|
|
|
namespace Erp.Sender.WhatsApp;
|
|
|
|
public interface IErpWhatsAppSender : ITransientDependency
|
|
{
|
|
Task<WhatsAppSendResult> SendAsync(string To, string Message, string LanguageCode = "tr");
|
|
}
|
|
|
|
public class ErpWhatsAppSender : IErpWhatsAppSender
|
|
{
|
|
private readonly IWhatsAppHttpClient httpClient;
|
|
private readonly ILogger<ErpWhatsAppSender> logger;
|
|
|
|
public ErpWhatsAppSender(
|
|
IWhatsAppHttpClient httpClient,
|
|
ILogger<ErpWhatsAppSender> logger)
|
|
{
|
|
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,
|
|
};
|
|
}
|
|
}
|
|
|