using Microsoft.Extensions.Logging; using PARR.BLL.Domain.Mq; using PARR.BLL.Services.Interfaces; using PARR.TemplateMatcher.Services.Interfaces; using PARR.TemplateMatcher.Settings; namespace PARR.TemplateMatcher.Services.Implementations; internal class TemplateUpdaterMqSender : ITemplateUpdaterMqSender { private readonly ILogger logger; private readonly IMqService mqService; private readonly MqSettings mqSettings; public TemplateUpdaterMqSender( ILogger 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 }); var result = await mqService.SendAsync(mqSettings.TemplateUpdater, new List { updateRequest }); if (result.IsSuccess) { logger.LogInformation("Отправлен запрос на обновление шаблона {TemplateId}", updateRequest.TemplateId); } else { logger.LogError("Ошибка при отправке запроса на обновление шаблона {TemplateId} в очередь '{Queue}'.", updateRequest.TemplateId, mqSettings.TemplateUpdater.QueueName); } } }