feat(api,dal): в JobGroup добавлено свойство UserTimeZoneOffsetMinutes, доработан контроллер. EsppScheduleTransformService - доработка с учетом offset
This commit is contained in:
@@ -23,6 +23,8 @@
|
||||
|
||||
public DateTimeOffset ReferenceDate { get; set; }
|
||||
|
||||
public int? UserTimeZoneOffsetMinutes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Использовать таймзону рабочей группы ответственного за ЭК шаблона
|
||||
/// </summary>
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
public DateTimeOffset ReferenceDate { get; set; }
|
||||
|
||||
public int? UserTimeZoneOffsetMinutes { get; set; }
|
||||
|
||||
public bool IsWorkGroupTimezone { get; set; }
|
||||
|
||||
public required JobGroupTypeResponse GroupType { get; set; }
|
||||
|
||||
@@ -39,7 +39,6 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly IEsppSchTypeConfigService esppConfigService;
|
||||
private readonly IValidator<JobGroupRequest> validator;
|
||||
private readonly IJobGroupTypeService jobGroupTypeService;
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
private readonly IMatchingStatusService matchingStatusService;
|
||||
private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
|
||||
|
||||
@@ -52,7 +51,6 @@ namespace PARR.API.Controllers.V1
|
||||
IEsppSchTypeConfigService esppConfigService,
|
||||
IValidator<JobGroupRequest> validator,
|
||||
IJobGroupTypeService jobGroupTypeService,
|
||||
SettingsFromDb settingsFromDb,
|
||||
IMatchingStatusService matchingStatusService,
|
||||
IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
|
||||
)
|
||||
@@ -65,7 +63,6 @@ namespace PARR.API.Controllers.V1
|
||||
this.esppConfigService = esppConfigService;
|
||||
this.validator = validator;
|
||||
this.jobGroupTypeService = jobGroupTypeService;
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
this.matchingStatusService = matchingStatusService;
|
||||
this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
|
||||
}
|
||||
@@ -168,6 +165,7 @@ namespace PARR.API.Controllers.V1
|
||||
Solution = request.Solution.Trim(),
|
||||
TemplateDuration = request.TemplateDuration.Trim(),
|
||||
ReferenceDate = request.ReferenceDate,
|
||||
UserTimeZoneOffsetMinutes = request.UserTimeZoneOffsetMinutes,
|
||||
ScheduleExcludeTypeId = request.ScheduleExcludeTypeId,
|
||||
ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId,
|
||||
IsAutoDistributionEnabled = request.IsAutoDistributionEnabled,
|
||||
@@ -262,6 +260,7 @@ namespace PARR.API.Controllers.V1
|
||||
orig.Solution = request.Solution.Trim();
|
||||
orig.TemplateDuration = request.TemplateDuration.Trim();
|
||||
orig.ReferenceDate = request.ReferenceDate;
|
||||
orig.UserTimeZoneOffsetMinutes = request.UserTimeZoneOffsetMinutes;
|
||||
orig.ScheduleExcludeTypeId = request.ScheduleExcludeTypeId;
|
||||
orig.ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId;
|
||||
orig.IsAutoDistributionEnabled = request.IsAutoDistributionEnabled;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using FluentValidation;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using PARR.API.Contracts.V1.Requests;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
@@ -123,6 +124,14 @@ namespace PARR.API.Validators
|
||||
return true;
|
||||
}).WithMessage("Некорректное значение периода распределения");
|
||||
|
||||
RuleFor(t => t.UserTimeZoneOffsetMinutes)
|
||||
.Must((entity, value, c) =>
|
||||
{
|
||||
// если IsResponseAreaTimezone == true, то поле UserTimeZoneOffsetMinutes обязательно.
|
||||
// если IsResponseAreaTimezone == false, то UserTimeZoneOffsetMinutes должно быть null
|
||||
return (entity.IsWorkGroupTimezone && value != null) || (!entity.IsWorkGroupTimezone && value == null);
|
||||
}).WithMessage("Некорректное значение."); ;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user