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; }
|
public DateTimeOffset NextRun { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// NextRun с учетом ЗО
|
/// NextRun с учетом ЗО (локальное время по ЗО, не UTC)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset? NextRunResponseAreaInLocal { get; set; }
|
public DateTimeOffset? NextRunResponseAreaInLocal { get; set; }
|
||||||
|
|
||||||
@@ -44,6 +44,8 @@
|
|||||||
public int OrderCount { get; set; }
|
public int OrderCount { get; set; }
|
||||||
|
|
||||||
public bool IsAutoDistributionEnabled { 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.Models;
|
||||||
using PARR.DAL.NextRunServices;
|
using PARR.DAL.NextRunServices;
|
||||||
using PARR.DAL.Services.Interfaces;
|
using PARR.DAL.Services.Interfaces;
|
||||||
|
using PARR.DAL.Services.Interfaces.Schedule;
|
||||||
|
|
||||||
namespace PARR.API.Controllers.V1
|
namespace PARR.API.Controllers.V1
|
||||||
{
|
{
|
||||||
@@ -36,6 +37,8 @@ namespace PARR.API.Controllers.V1
|
|||||||
private readonly IShortcodesService shortcodesService;
|
private readonly IShortcodesService shortcodesService;
|
||||||
private readonly IOrderService orderService;
|
private readonly IOrderService orderService;
|
||||||
private readonly INextRunService nextRunService;
|
private readonly INextRunService nextRunService;
|
||||||
|
private readonly SettingsFromDb settingsFromDb;
|
||||||
|
private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
|
||||||
|
|
||||||
public TemplateController(
|
public TemplateController(
|
||||||
IMapper mapper,
|
IMapper mapper,
|
||||||
@@ -45,7 +48,9 @@ namespace PARR.API.Controllers.V1
|
|||||||
ILogger<TemplateController> logger,
|
ILogger<TemplateController> logger,
|
||||||
IShortcodesService shortcodesService,
|
IShortcodesService shortcodesService,
|
||||||
IOrderService orderService,
|
IOrderService orderService,
|
||||||
INextRunService nextRunService
|
INextRunService nextRunService,
|
||||||
|
SettingsFromDb settingsFromDb,
|
||||||
|
IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
@@ -56,6 +61,8 @@ namespace PARR.API.Controllers.V1
|
|||||||
this.shortcodesService = shortcodesService;
|
this.shortcodesService = shortcodesService;
|
||||||
this.orderService = orderService;
|
this.orderService = orderService;
|
||||||
this.nextRunService = nextRunService;
|
this.nextRunService = nextRunService;
|
||||||
|
this.settingsFromDb = settingsFromDb;
|
||||||
|
this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -337,9 +344,18 @@ namespace PARR.API.Controllers.V1
|
|||||||
/// <param name="response"></param>
|
/// <param name="response"></param>
|
||||||
private void FillNextRunWithResponseAreaInLocal(TemplateBaseResponse response)
|
private void FillNextRunWithResponseAreaInLocal(TemplateBaseResponse response)
|
||||||
{
|
{
|
||||||
response.NextRunResponseAreaInLocal = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
|
var responseArea = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
|
||||||
? nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, response.ResponseArea)
|
? response.ResponseArea
|
||||||
: response.NextRun;
|
: 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>();
|
CreateMap<DAL.Models.TaskStatus, TaskStatusResponse>();
|
||||||
|
|
||||||
|
#region ScheduleResponseAreaTimeOffsetResponse
|
||||||
|
|
||||||
|
CreateMap<ScheduleResponseAreaTimeOffset, ScheduleResponseAreaTimeOffsetResponse>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region StatusTypeResponse
|
#region StatusTypeResponse
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user