using Microsoft.Extensions.Logging; using PARR.Core.Common.Interfaces.RabbitServices; using PARR.Domain.Common.Rabbit.Messages.TemplateMatching; using PARR.TemplateMatcher.Services.Interfaces; using PARR.TemplateMatcher.Settings; namespace PARR.TemplateMatcher.Services.Implementations; internal class TemplateUpdaterMqSender : ITemplateUpdaterMqSender { private readonly ILogger logger; private readonly IRabbitService mqService; private readonly MqSettings mqSettings; public TemplateUpdaterMqSender( ILogger logger, IRabbitService mqService, MqSettings mqSettings ) { this.logger = logger; this.mqService = mqService; this.mqSettings = mqSettings; } public async Task SendTemplateUpdateMessageAsync(TemplateUpdaterMessage updateRequest) { logger.LogDebug("Отправка сообщения в очередь '{Queue}' для шаблона {TemplateId}", mqSettings.TemplateUpdater.QueueName, updateRequest.TemplateId); 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); } } }