feat(dal): ITemplateDistributorV2 - распределяет шаблоны с учетом часового пояса

This commit is contained in:
Mikhail Trubnikov
2026-02-10 15:50:30 +10:00
parent 897dd4c4e3
commit 7c8f8bbf97
7 changed files with 707 additions and 124 deletions

View File

@@ -2,6 +2,7 @@
using PARR.DAL.Contracts;
using PARR.DAL.DomainModels;
using PARR.DAL.Services.Interfaces;
using System.Text.Json;
namespace PARR.DAL.NextRunServices.Subservices
{
@@ -67,6 +68,8 @@ namespace PARR.DAL.NextRunServices.Subservices
{
//offset - желательно передавать всегда, хотябы МСК, чтобы рассчитывались правильно даты, так как в ЕСПП все в МСК
logger.LogDebug("Начинаю рассчет nextRun по расписанию ЕСПП. Входные данные: date: {referenceDate}, offset: {offset}, esppSchedule: {esppSchedule}", referenceDate, offset, JsonSerializer.Serialize(esppSchedule));
var nextRun = referenceDate;
//var finalOffset = new TimeSpan(3, 0, 0) + (offset ?? TimeSpan.Zero);
@@ -74,6 +77,8 @@ namespace PARR.DAL.NextRunServices.Subservices
var offsetReferenceDate = referenceDate.ToOffset(finalOffset);
logger.LogDebug("Дата после добавления offset - {offsetReferenceDate}", offsetReferenceDate);
////---------
//// Для рассчета по МСК времени, потому что в ЮТС может быть еще ВСК, а по МСК это уже ПНД
//var offsetReferenceDate = referenceDate.ToOffset(new TimeSpan(3, 0, 0));
@@ -107,9 +112,13 @@ namespace PARR.DAL.NextRunServices.Subservices
break;
}
logger.LogDebug("Рассчитанная дата, с учетом offset: {nextRun}", nextRun);
// Возвращаем обратно в ЮТС
nextRun = nextRun.ToOffset(TimeSpan.Zero);
logger.LogDebug("Рассчитанная дата с нулевым offset: {nextRun}", nextRun);
return nextRun;
}