feat(api): templateResponse - добавлена инфа о часовом поясе
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
namespace PARR.API.Contracts.V1.Responses
|
||||
{
|
||||
public class ScheduleResponseAreaTimeOffsetResponse
|
||||
{
|
||||
public required string ResponseArea { get; set; }
|
||||
|
||||
public required string EsppValue { get; set; }
|
||||
|
||||
public TimeSpan UtcTimeOffset { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
public DateTimeOffset NextRun { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// NextRun с учетом ЗО
|
||||
/// NextRun с учетом ЗО (локальное время по ЗО, не UTC)
|
||||
/// </summary>
|
||||
public DateTimeOffset? NextRunResponseAreaInLocal { get; set; }
|
||||
|
||||
@@ -44,6 +44,8 @@
|
||||
public int OrderCount { get; set; }
|
||||
|
||||
public bool IsAutoDistributionEnabled { get; set; }
|
||||
|
||||
public ScheduleResponseAreaTimeOffsetResponse? Timezone { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ using PARR.DAL.DomainServices.Shortcodes;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.NextRunServices;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.Schedule;
|
||||
|
||||
namespace PARR.API.Controllers.V1
|
||||
{
|
||||
@@ -36,6 +37,8 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly IShortcodesService shortcodesService;
|
||||
private readonly IOrderService orderService;
|
||||
private readonly INextRunService nextRunService;
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
|
||||
|
||||
public TemplateController(
|
||||
IMapper mapper,
|
||||
@@ -45,7 +48,9 @@ namespace PARR.API.Controllers.V1
|
||||
ILogger<TemplateController> logger,
|
||||
IShortcodesService shortcodesService,
|
||||
IOrderService orderService,
|
||||
INextRunService nextRunService
|
||||
INextRunService nextRunService,
|
||||
SettingsFromDb settingsFromDb,
|
||||
IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
|
||||
)
|
||||
{
|
||||
this.mapper = mapper;
|
||||
@@ -56,6 +61,8 @@ namespace PARR.API.Controllers.V1
|
||||
this.shortcodesService = shortcodesService;
|
||||
this.orderService = orderService;
|
||||
this.nextRunService = nextRunService;
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
|
||||
}
|
||||
|
||||
|
||||
@@ -337,9 +344,18 @@ namespace PARR.API.Controllers.V1
|
||||
/// <param name="response"></param>
|
||||
private void FillNextRunWithResponseAreaInLocal(TemplateBaseResponse response)
|
||||
{
|
||||
response.NextRunResponseAreaInLocal = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
|
||||
? nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, response.ResponseArea)
|
||||
: response.NextRun;
|
||||
var responseArea = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
|
||||
? response.ResponseArea
|
||||
: settingsFromDb.DefaultResponseAreaToTimeOffset;
|
||||
|
||||
//response.NextRunResponseAreaInLocal = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
|
||||
// ? nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, response.ResponseArea)
|
||||
// // возвращаем в дефолтной зоне
|
||||
// : nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, settingsFromDb.DefaultResponseAreaToTimeOffset);
|
||||
|
||||
response.NextRunResponseAreaInLocal = nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, responseArea);
|
||||
|
||||
response.Timezone = mapper.Map<ScheduleResponseAreaTimeOffsetResponse>(scheduleResponseAreaTimeOffsetService.GetByResponseAreaOrDefault(responseArea));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -71,6 +71,11 @@ namespace PARR.API.MappingProfiles
|
||||
|
||||
CreateMap<DAL.Models.TaskStatus, TaskStatusResponse>();
|
||||
|
||||
#region ScheduleResponseAreaTimeOffsetResponse
|
||||
|
||||
CreateMap<ScheduleResponseAreaTimeOffset, ScheduleResponseAreaTimeOffsetResponse>();
|
||||
|
||||
#endregion
|
||||
|
||||
#region StatusTypeResponse
|
||||
|
||||
|
||||
Reference in New Issue
Block a user