2026-04-30 10:35:31 +10:00
|
|
|
|
namespace PARR.API.MappingProfiles.Resolvers
|
2024-08-06 10:52:27 +10:00
|
|
|
|
{
|
2026-02-03 16:15:19 +10:00
|
|
|
|
//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);
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
2024-08-06 10:52:27 +10:00
|
|
|
|
}
|