using Microsoft.Extensions.Logging; using PARR.BLL.Services.Interfaces; using PARR.EsppTemplateSync.Services; using PARR.EsppTemplateSync.Settings; namespace PARR.EsppTemplateSync { internal class TemplateMQSyncer : ITemplateSyncer { private readonly ILogger logger; private readonly IManager manager; private readonly GlobalSettings globalSettings; private readonly IMqService mqService; public TemplateMQSyncer( ILogger logger, IManager manager, GlobalSettings globalSettings, IMqService mqService ) { this.logger = logger; this.manager = manager; this.globalSettings = globalSettings; this.mqService = mqService; if (globalSettings.MqSettings == null) { logger.LogError("Нет секции настроек хранилища. MqSettings, EsppTemplates"); throw new Exception("Нет секции настроек хранилища. MqSettings, EsppTemplates"); } } public void Start() { var isConnected = mqService.InitConsumer(globalSettings!.MqSettings!, manager.ManageStringAsync); if (!isConnected) throw new Exception("Ошибка при подключении к RabbitMq"); logger.LogInformation($"Запущена проверка очереди {globalSettings.MqSettings!.QueueName}."); } public void Stop() { mqService.Dispose(); logger.LogInformation($"=== === === Соединение с очередью {globalSettings.MqSettings!.QueueName} закрыто === === ==="); } } }