feat(dal): NextRunServiceV2 - заготовка распределения шаблонов в рамках JobGroup

This commit is contained in:
Mikhail Trubnikov
2026-02-12 16:15:36 +10:00
parent 999da9bf84
commit 858dd8c31c
5 changed files with 299 additions and 15 deletions

View File

@@ -13,13 +13,15 @@ namespace PARR.Test.NextRun
private readonly ITemplateService templateService;
private readonly IShortcodesService shortcodesService;
private readonly ITemplateDistributorV2 templateDistributorV2;
private readonly INextRunServiceV2 nextRunServiceV2;
public NextRunTest(
/*ITemplateDistributor templateDistributor, */
INextRunService nextRunService,
ITemplateService templateService,
IShortcodesService shortcodesService,
ITemplateDistributorV2 templateDistributorV2
ITemplateDistributorV2 templateDistributorV2,
INextRunServiceV2 nextRunServiceV2
)
{
//this.templateDistributor = templateDistributor;
@@ -27,29 +29,40 @@ namespace PARR.Test.NextRun
this.templateService = templateService;
this.shortcodesService = shortcodesService;
this.templateDistributorV2 = templateDistributorV2;
this.nextRunServiceV2 = nextRunServiceV2;
}
public async Task Test()
{
var duration = 2;
var offset = TimeSpan.FromHours(3);
#region тестирование INextRunServiceV2
var startDate = new DateOnly(2026, 2, 10);
var referenceDate = new DateTimeOffset(2026, 2, 13, 23, 0, 0, TimeSpan.Zero);
var distributeResult = await nextRunServiceV2.GetNextRunForJobGroupWithAutoDistributionAsync(Guid.Parse("d25d8a9e-898f-417a-9bec-ef3a356e7c94"));
var templates = GetTemplates();
var templatesEmpty = new List<TemplateNextRunDto>();
var templatesToHandeler = templatesEmpty; // templatesEmpty // templates
#endregion
// распределить шаблоны
var distributedTemplates = await templateDistributorV2.DistributeTemplatesAsync(startDate, duration, referenceDate, offset, templates, true);
// получить актуальный nextRun
var targetTemplate = new TemplateNextRunDto(Guid.Parse("DA151719-2742-4260-BFFE-012B61591053"), new DateTimeOffset(2026, 2, 15, 23, 30, 0, TimeSpan.Zero));
//var validNextRun = await templateDistributorV2.GetNextRunForTemplateAsync(startDate, duration, referenceDate, offset, targetTemplate, templatesToHandeler, true, isNew: false);
#region Тестирование templateDistributorV2
//var duration = 2;
//var offset = TimeSpan.FromHours(3);
//var startDate = new DateOnly(2026, 2, 10);
//var referenceDate = new DateTimeOffset(2026, 2, 13, 23, 0, 0, TimeSpan.Zero);
//var templates = GetTemplates();
//var templatesEmpty = new List<TemplateNextRunDto>();
//var templatesToHandeler = templatesEmpty; // templatesEmpty // templates
//// распределить шаблоны
//var distributedTemplates = await templateDistributorV2.DistributeTemplatesAsync(startDate, duration, referenceDate, offset, templates, true);
//// получить актуальный nextRun
//var targetTemplate = new TemplateNextRunDto(Guid.Parse("DA151719-2742-4260-BFFE-012B61591053"), new DateTimeOffset(2026, 2, 15, 23, 30, 0, TimeSpan.Zero));
////var validNextRun = await templateDistributorV2.GetNextRunForTemplateAsync(startDate, duration, referenceDate, offset, targetTemplate, templatesToHandeler, true, isNew: false);
#endregion
//var template = await templateService.Get().Include(t => t.Job).ThenInclude(t => t.Group).FirstAsync(t => t.Name == "ЭИТИ-ПАРРКИТВЦ_СХД ТО-1_СХД-AERODISK-432-2-4-U26-EN4SAG022-ГВЦ");
//var responseAreae = await shortcodesService.ApplyShortcodesAsync(template.Job.ResponseAreaMask, template);