feat(api,bll,dal,esppScheduleSync,TemplateGenerator): изменен рассчет nextRun для задания роботу и синхронизатору, подставляется в зависимости от настроек ЗО и таймзоны УЗ робота ЕСПП. Переименование полей в БД
This commit is contained in:
@@ -17,8 +17,8 @@ using PARR.DAL.Contracts;
|
||||
using PARR.DAL.DomainModels;
|
||||
using PARR.DAL.DomainServices.Shortcodes;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.NextRunServices;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace PARR.API.Controllers.V1
|
||||
{
|
||||
@@ -35,6 +35,7 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly ILogger<TemplateController> logger;
|
||||
private readonly IShortcodesService shortcodesService;
|
||||
private readonly IOrderService orderService;
|
||||
private readonly INextRunService nextRunService;
|
||||
|
||||
public TemplateController(
|
||||
IMapper mapper,
|
||||
@@ -43,7 +44,8 @@ namespace PARR.API.Controllers.V1
|
||||
IClientService clientService,
|
||||
ILogger<TemplateController> logger,
|
||||
IShortcodesService shortcodesService,
|
||||
IOrderService orderService
|
||||
IOrderService orderService,
|
||||
INextRunService nextRunService
|
||||
)
|
||||
{
|
||||
this.mapper = mapper;
|
||||
@@ -53,6 +55,7 @@ namespace PARR.API.Controllers.V1
|
||||
this.logger = logger;
|
||||
this.shortcodesService = shortcodesService;
|
||||
this.orderService = orderService;
|
||||
this.nextRunService = nextRunService;
|
||||
}
|
||||
|
||||
|
||||
@@ -135,7 +138,7 @@ namespace PARR.API.Controllers.V1
|
||||
var templatesDict = templates.ToDictionary(t => t.Id);
|
||||
var templateResponseDict = templateResponse.ToDictionary(t => t.Id);
|
||||
|
||||
#region Заполняем шорткоды
|
||||
#region Заполняем шорткоды и NextRunWithResponseAreaOffset
|
||||
if (filter.ApplyShortcode == true)
|
||||
{
|
||||
//sw.Restart();
|
||||
@@ -143,6 +146,7 @@ namespace PARR.API.Controllers.V1
|
||||
{
|
||||
//await ApplyTemplateShortcodesAsync(responseItem, templates.First(t => t.Id == responseItem.Id));
|
||||
await ApplyTemplateShortcodesAsync(responseItem, templatesDict[responseItem.Id]);
|
||||
FillNextRunWithResponseAreaOffset(responseItem);
|
||||
}
|
||||
//logger.LogDebug("Получение шорткодов: {ElapsedMs} мс", sw.ElapsedMilliseconds);
|
||||
//sw.Stop();
|
||||
@@ -187,6 +191,7 @@ namespace PARR.API.Controllers.V1
|
||||
|
||||
var response = mapper.Map<TemplateResponse>(template);
|
||||
await ApplyTemplateShortcodesAsync(response, template);
|
||||
FillNextRunWithResponseAreaOffset(response);
|
||||
|
||||
var ordersCountResult = await GetOrdersCountAsync(new List<Guid> { response.Id });
|
||||
response.OrderCount = ordersCountResult.Count > 0 ? ordersCountResult.First().Value : 0;
|
||||
@@ -280,6 +285,7 @@ namespace PARR.API.Controllers.V1
|
||||
var response = mapper.Map<TemplateListResponse>(templateToResponse);
|
||||
|
||||
await ApplyTemplateShortcodesAsync(response, templateToResponse);
|
||||
FillNextRunWithResponseAreaOffset(response);
|
||||
|
||||
var ordersCountResult = await GetOrdersCountAsync(new List<Guid> { response.Id });
|
||||
response.OrderCount = ordersCountResult.Count > 0 ? ordersCountResult.First().Value : 0;
|
||||
@@ -324,5 +330,17 @@ namespace PARR.API.Controllers.V1
|
||||
return templateWithOrders.ToDictionary(t => t.TemplateId!.Value, t => t.OrderCount);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Заполнить NextRunWithResponseAreaOffset
|
||||
/// </summary>
|
||||
/// <param name="response"></param>
|
||||
private void FillNextRunWithResponseAreaOffset(TemplateBaseResponse response)
|
||||
{
|
||||
response.NextRunWithResponseAreaOffset = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
|
||||
? nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, response.ResponseArea)
|
||||
: response.NextRun;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user