Files
parr_api/PARR.API/MappingProfiles/Resolvers/RobotTaskScheduleNextStartResolver.cs

43 lines
2.1 KiB
C#
Raw Permalink Normal View History

namespace PARR.API.MappingProfiles.Resolvers
{
//public class RobotTaskScheduleNextStartResolver : IValueResolver<RobotConfiguration, RobotTaskScheduleResponse, string>
//{
// private readonly SettingsFromDb settingsFromDb;
// private readonly INextRunModifierService nextRunModifierService;
// private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
// public RobotTaskScheduleNextStartResolver(
// SettingsFromDb settingsFromDb,
// INextRunModifierService nextRunModifierService,
// IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
// )
// {
// this.settingsFromDb = settingsFromDb;
// this.nextRunModifierService = nextRunModifierService;
// this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
// }
// public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
// {
// var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template!.NextRun);
// // Сначала прибавляем офсет УЗ ЕСПП
// // потом прибаляем = офсет УЗ ЕСПП - offset ЗО
// // если включен - IsWorkGroupTimezone - группировка по таймозне группы, применяем тайм зону группы
// if (source.Template?.Job?.Group?.IsWorkGroupTimezone == true)
// {
// var responseArea = "TODO";
// var esppOffset = new TimeSpan(settingsFromDb.EsppRobotAccountTimeZoneHour, 0, 0);
// var workGroupOffset = scheduleResponseAreaTimeOffsetService.GetByResponseAreaOrDefault(responseArea).UtcTimeOffset;
// var resultOffset = esppOffset - workGroupOffset;
// nextRunForRobot = nextRunForRobot.Add(resultOffset);
// }
// return EsppScheduleHelpers.GetNextRun(nextRunForRobot);
// }
//}
}