| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using Quadarax.Application.QLiberace.Base.Services;
- using Quadarax.Application.QLiberace.Processor.Repositories;
- using Quadarax.Application.QLiberace.Processor.Settings;
- using Quadarax.Application.QLiberace.Processor.Workers;
- using Quadarax.Foundation.Core.Business;
- using Quadarax.Foundation.Core.Data.Interface.Domain;
- using Quadarax.Foundation.Core.Logging;
- namespace Quadarax.Application.QLiberace.Processor.Services
- {
- public class ProcessorWorkerService : AbstractWorkerService<RepoPendingQueue, RepoProcessingQueue, RepoDoneQueue, RepoFailedQueue>
- {
-
- #region *** Properties ***
-
- #endregion
- #region *** Private fields ***
- private SettingsService _srvSettings;
- #endregion
- #region *** Constructor ***
- public ProcessorWorkerService(SettingsService srvSettings, RepoFailedQueue repository3, RepoDoneQueue repository2, RepoProcessingQueue repository1, RepoPendingQueue repository, IContext currentContext, IQLogger logger) : base(repository3, repository2, repository1, repository, currentContext, logger)
- {
- _srvSettings = srvSettings ?? throw new ArgumentNullException(nameof(srvSettings));
- }
- #endregion
- #region *** Public operations ***
- #endregion
- #region *** Private operations ***
- protected override void OnBuildWorkers()
- {
- var exists = _srvSettings.ExistsSettings(Base.Constants.Modules.Processor.Code);
- if (!exists.IsSuccess)
- throw exists.ToAggregateException();
- if (!exists.Value)
- {
- var newSettings = new ProcessorSetting();
- newSettings.SetDefaults();
- Log.Log(LogSeverityEnum.Warn, $"Settings for module '{Base.Constants.Modules.Processor.Code}' was set to default!");
- _srvSettings.CreateSettings<ProcessorSetting>(newSettings);
- }
- var settings = _srvSettings.GetSettings<ProcessorSetting>(Base.Constants.Modules.Processor.Code);
- if (!settings.IsSuccess)
- throw settings.ToAggregateException();
- RegisterWorker<ProcessingWorker>(settings.Value.GetProcessingWorkerSettings());
- // TODO: Uncomment when ready
- //RegisterWorker<RetentionWorker>(settings.Value.GetRetentionWorkerSettings());
- //RegisterWorker<GarbageWorker>(settings.Value.GetGarbageWorkerSettings());
- }
- #endregion
- }
- }
|