fix(api,dal,nextRun): исправлена логика рассчета nextRun для шаблонов с параметром IsResponseAreaTimezone
This commit is contained in:
@@ -76,21 +76,6 @@ namespace PARR.API.Controllers.V1
|
||||
{
|
||||
var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery);
|
||||
|
||||
//IQueryable<Template> query = templateService.GetWithIncludes().AsNoTracking()
|
||||
// .Include(t => t.Unit).ThenInclude(t => t!.UnitValues).ThenInclude(t => t.Field)
|
||||
// .Include(t => t.Unit).ThenInclude(t => t!.UnitValues).ThenInclude(t => t.Value)
|
||||
// .Include(t => t.RobotConfigurations).ThenInclude(t => t.Robot)
|
||||
// .Include(t => t.RobotConfigurations).ThenInclude(t => t.TaskStatus)
|
||||
// .Include(t => t.RobotConfigurations).ThenInclude(t => t.RobotStatus)
|
||||
// .Include(t => t.Orders)
|
||||
// .Include(t => t.StatusType)
|
||||
// .Include(t => t.Job).ThenInclude(t => t.Group).ThenInclude(t => t.ScheduleExcludeType)
|
||||
// .Include(t => t.Job).ThenInclude(t => t.Group).ThenInclude(t => t.ScheduleExcludeTypeCalendar)
|
||||
// .OrderBy(t => t.Name)
|
||||
// .AsSplitQuery();
|
||||
|
||||
//var sw = Stopwatch.StartNew();
|
||||
|
||||
IQueryable<Template> query = templateService.Get()
|
||||
.Include(t => t.Unit).ThenInclude(t => t!.UnitValues).ThenInclude(t => t.Field)
|
||||
.Include(t => t.Unit).ThenInclude(t => t!.UnitValues).ThenInclude(t => t.Value)
|
||||
@@ -153,7 +138,7 @@ namespace PARR.API.Controllers.V1
|
||||
{
|
||||
//await ApplyTemplateShortcodesAsync(responseItem, templates.First(t => t.Id == responseItem.Id));
|
||||
await ApplyTemplateShortcodesAsync(responseItem, templatesDict[responseItem.Id]);
|
||||
FillNextRunWithResponseAreaInLocal(responseItem);
|
||||
FillResponseAreaOffset(responseItem);
|
||||
}
|
||||
//logger.LogDebug("Получение шорткодов: {ElapsedMs} мс", sw.ElapsedMilliseconds);
|
||||
//sw.Stop();
|
||||
@@ -198,7 +183,7 @@ namespace PARR.API.Controllers.V1
|
||||
|
||||
var response = mapper.Map<TemplateResponse>(template);
|
||||
await ApplyTemplateShortcodesAsync(response, template);
|
||||
FillNextRunWithResponseAreaInLocal(response);
|
||||
FillResponseAreaOffset(response);
|
||||
|
||||
var ordersCountResult = await GetOrdersCountAsync(new List<Guid> { response.Id });
|
||||
response.OrderCount = ordersCountResult.Count > 0 ? ordersCountResult.First().Value : 0;
|
||||
@@ -292,7 +277,7 @@ namespace PARR.API.Controllers.V1
|
||||
var response = mapper.Map<TemplateListResponse>(templateToResponse);
|
||||
|
||||
await ApplyTemplateShortcodesAsync(response, templateToResponse);
|
||||
FillNextRunWithResponseAreaInLocal(response);
|
||||
FillResponseAreaOffset(response);
|
||||
|
||||
var ordersCountResult = await GetOrdersCountAsync(new List<Guid> { response.Id });
|
||||
response.OrderCount = ordersCountResult.Count > 0 ? ordersCountResult.First().Value : 0;
|
||||
@@ -339,23 +324,34 @@ namespace PARR.API.Controllers.V1
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Заполнить NextRunResponseAreaInLocal
|
||||
/// Заполнить ResponseAreaOffset
|
||||
/// </summary>
|
||||
/// <param name="response"></param>
|
||||
private void FillNextRunWithResponseAreaInLocal(TemplateBaseResponse response)
|
||||
private void FillResponseAreaOffset(TemplateBaseResponse response)
|
||||
{
|
||||
var responseArea = response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea)
|
||||
? response.ResponseArea
|
||||
: settingsFromDb.DefaultResponseAreaToTimeOffset;
|
||||
// если стоит галка IsResponseAreaTimezone и есть ЗО, то возвращаем оффсет
|
||||
if (response.IsResponseAreaTimezone && !string.IsNullOrEmpty(response.ResponseArea))
|
||||
{
|
||||
var responseArea = response.ResponseArea;
|
||||
response.ResponseAreaOffset = mapper.Map<ScheduleResponseAreaTimeOffsetResponse>(scheduleResponseAreaTimeOffsetService.GetByResponseAreaOrDefault(responseArea));
|
||||
}
|
||||
else
|
||||
{
|
||||
response.ResponseAreaOffset = null;
|
||||
}
|
||||
|
||||
//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.NextRunResponseAreaInLocal = nextRunService.GetNextRunWithResponseAreaOffset(response.NextRun, responseArea);
|
||||
|
||||
response.Timezone = mapper.Map<ScheduleResponseAreaTimeOffsetResponse>(scheduleResponseAreaTimeOffsetService.GetByResponseAreaOrDefault(responseArea));
|
||||
//response.ResponseAreaOffset = mapper.Map<ScheduleResponseAreaTimeOffsetResponse>(scheduleResponseAreaTimeOffsetService.GetByResponseAreaOrDefault(responseArea));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user