44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using PARR.BLL.Domain.Mq;
|
|
using PARR.BLL.Services.Interfaces;
|
|
using PARR.TemplateMatcher.Services.Interfaces;
|
|
using PARR.TemplateMatcher.Settings;
|
|
using System.Text.Json;
|
|
|
|
namespace PARR.TemplateMatcher.Services.Implementations;
|
|
|
|
internal class TemplateUpdaterMqSender : ITemplateUpdaterMqSender
|
|
{
|
|
private readonly ILogger<TemplateUpdaterMqSender> logger;
|
|
private readonly IMqService mqService;
|
|
private readonly MqSettings mqSettings;
|
|
|
|
public TemplateUpdaterMqSender(
|
|
ILogger<TemplateUpdaterMqSender> logger,
|
|
IMqService mqService,
|
|
MqSettings mqSettings)
|
|
{
|
|
this.logger = logger;
|
|
this.mqService = mqService;
|
|
this.mqSettings = mqSettings;
|
|
}
|
|
|
|
public async Task SendTemplateUpdateMessageAsync(TemplateUpdaterMq updateRequest)
|
|
{
|
|
logger.LogDebug("Отправка сообщения в очередь '{Queue}' для шаблона {TemplateId}",
|
|
mqSettings.TemplateUpdater.QueueName, updateRequest.TemplateId);
|
|
|
|
var msg = JsonSerializer.Serialize(updateRequest);
|
|
var result = await mqService.SendAsync(mqSettings.TemplateUpdater, new[] { msg });
|
|
|
|
if (result.IsSuccess)
|
|
{
|
|
logger.LogInformation("Отправлен запрос на обновление шаблона {TemplateId}", updateRequest.TemplateId);
|
|
}
|
|
else
|
|
{
|
|
logger.LogError("Ошибка при отправке запроса на обновление шаблона {TemplateId} в очередь '{Queue}'.",
|
|
updateRequest.TemplateId, mqSettings.TemplateUpdater.QueueName);
|
|
}
|
|
}
|
|
} |