fix(api,dal,nextRun): исправлена логика рассчета nextRun для шаблонов с параметром IsResponseAreaTimezone
This commit is contained in:
@@ -60,21 +60,31 @@ namespace PARR.DAL.NextRunServices.Subservices
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public async Task<DateTimeOffset> GetNextDateAsync(Guid jobGroupId, DateTimeOffset referenceDate)
|
||||
public async Task<DateTimeOffset> GetNextDateAsync(Guid jobGroupId, DateTimeOffset referenceDate, TimeSpan? offset = null)
|
||||
{
|
||||
var esppSchedule = await GetEsppScheduleAsync(jobGroupId);
|
||||
|
||||
return GetNextDate(esppSchedule, referenceDate);
|
||||
return GetNextDate(esppSchedule, referenceDate, offset);
|
||||
}
|
||||
|
||||
private DateTimeOffset GetNextDate(EsppScheduleDto esppSchedule, DateTimeOffset referenceDate)
|
||||
private DateTimeOffset GetNextDate(EsppScheduleDto esppSchedule, DateTimeOffset referenceDate, TimeSpan? offset)
|
||||
{
|
||||
var nextRun = referenceDate;
|
||||
|
||||
//---------
|
||||
// Для рассчета по МСК времени, потому что в ЮТС может быть еще ВСК, а по МСК это уже ПНД
|
||||
var offsetReferenceDate = referenceDate.ToOffset(new TimeSpan(3, 0, 0));
|
||||
//---------
|
||||
var finalOffset = new TimeSpan(3, 0, 0) + offset ?? TimeSpan.Zero;
|
||||
|
||||
var offsetReferenceDate = referenceDate.ToOffset(finalOffset);
|
||||
|
||||
////---------
|
||||
//// Для рассчета по МСК времени, потому что в ЮТС может быть еще ВСК, а по МСК это уже ПНД
|
||||
//var offsetReferenceDate = referenceDate.ToOffset(new TimeSpan(3, 0, 0));
|
||||
////---------
|
||||
|
||||
//// может быть offset ,это работает когда смещение для УЗ ЕСПП и применение ЗО РГ
|
||||
//if (offset.HasValue)
|
||||
// offsetReferenceDate = offsetReferenceDate.Off(offsetReferenceDate.Offset + offset);
|
||||
// //offsetReferenceDate = offsetReferenceDate.Add(offset.Value);
|
||||
|
||||
|
||||
switch (esppSchedule.TypeSchedule.Id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user