2024-07-02 11:43:59 +10:00
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2024-07-05 15:17:48 +10:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
using PARR.BLL.Services.Interfaces;
|
|
|
|
|
|
using PARR.Constants;
|
2024-07-02 11:43:59 +10:00
|
|
|
|
using PARR.DAL.Models;
|
2026-01-21 16:28:17 +10:00
|
|
|
|
using PARR.DAL.NextRunServices;
|
2024-07-02 11:43:59 +10:00
|
|
|
|
using PARR.DAL.Services.Interfaces;
|
2024-07-05 15:17:48 +10:00
|
|
|
|
using PARR.DAL.TransformServices;
|
2025-06-25 14:17:34 +10:00
|
|
|
|
using System.Reflection.Metadata.Ecma335;
|
2024-07-02 11:43:59 +10:00
|
|
|
|
|
|
|
|
|
|
namespace PARR.TemplateDistributor
|
|
|
|
|
|
{
|
|
|
|
|
|
internal class TemplateDistributor : ITemplateDistributor
|
|
|
|
|
|
{
|
2024-07-05 15:17:48 +10:00
|
|
|
|
private readonly ILogger<TemplateDistributor> logger;
|
2026-01-21 16:28:17 +10:00
|
|
|
|
private readonly INextRunService nextRunService;
|
2024-07-02 11:43:59 +10:00
|
|
|
|
|
2024-07-05 15:17:48 +10:00
|
|
|
|
public TemplateDistributor(
|
|
|
|
|
|
ILogger<TemplateDistributor> logger,
|
2026-01-21 16:28:17 +10:00
|
|
|
|
INextRunService nextRunService
|
2024-07-05 15:17:48 +10:00
|
|
|
|
)
|
2024-07-02 11:43:59 +10:00
|
|
|
|
{
|
2024-07-05 15:17:48 +10:00
|
|
|
|
this.logger = logger;
|
2026-01-21 16:28:17 +10:00
|
|
|
|
this.nextRunService = nextRunService;
|
2024-07-02 11:43:59 +10:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-21 16:28:17 +10:00
|
|
|
|
public async Task DistributeAsync(Guid jobGroupId)
|
2024-07-02 15:04:23 +10:00
|
|
|
|
{
|
2026-01-21 16:28:17 +10:00
|
|
|
|
// вызвать метод распределения, и получить новые даты
|
|
|
|
|
|
var distributedTemplates = await nextRunService.GetNextRunForJobGroupWithAutoDistributionAsync(jobGroupId);
|
2024-07-05 15:17:48 +10:00
|
|
|
|
|
2026-01-21 16:28:17 +10:00
|
|
|
|
if (distributedTemplates == null)
|
2024-07-05 15:17:48 +10:00
|
|
|
|
{
|
2026-01-21 16:28:17 +10:00
|
|
|
|
logger.LogWarning("При распределении шаблонов по jobGroupId {jobGroupId} вернулся null. Это ошибка. Прекращаю распределение.", jobGroupId);
|
2024-08-23 16:18:24 +10:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-21 16:28:17 +10:00
|
|
|
|
// получить список шаблонов, сравнить их с распределенными, обновить даты, сохранить
|
2024-07-11 11:32:14 +10:00
|
|
|
|
}
|
2024-07-02 11:43:59 +10:00
|
|
|
|
}
|
|
|
|
|
|
}
|