Files
parr_api/PARR.TemplateMatcher/Services/Implementations/TemplateMqPublisher.cs
Mikhail Kuznetsov 513e5f869a fix(templateMatcher): Исправление ошибок в именах шаблонов и рефакторинг синхронизации
- Устранена ошибка, когда при переиспользовании шаблона для шорткодов передавался ЭК "КОМПЛЕКСЫ-[ЗО]" вместо целевого ЭК шаблона.
- Проведен небольшой рефакторинг общих процессов синхронизации различных типов групп работ.
2026-05-20 17:59:06 +10:00

37 lines
1.6 KiB
C#

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 TemplateMqPublisher : ITemplateMqPublisher
{
private readonly ILogger<TemplateMqPublisher> logger;
private readonly IRabbitService mqService;
private readonly MqSettings mqSettings;
public TemplateMqPublisher(ILogger<TemplateMqPublisher> logger, IRabbitService mqService, MqSettings mqSettings)
{
this.logger = logger;
this.mqService = mqService;
this.mqSettings = mqSettings;
}
public async Task PublishUpdateAsync(TemplateUpdaterMessage message, CancellationToken ct = default)
{
var result = await mqService.SendAsync(mqSettings.TemplateUpdater, new List<object> { message });
if (!result.IsSuccess)
logger.LogError("Ошибка публикации команды обновления шаблона {TemplateId}.", message.TemplateId);
}
public async Task PublishCreateAsync(TemplateGeneratorMessage message, CancellationToken ct = default)
{
var result = await mqService.SendAsync(mqSettings.TemplateGenerator, new List<object> { message });
if (!result.IsSuccess)
logger.LogError("Ошибка публикации команды создания шаблона для Job {JobId}, Unit {UnitId}.", message.JobId, message.UnitId);
}
}
}