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