feat(api): Добавлена нормализация символов перевода текста на новую строку к единому с АСУ ЕСПП формату CRLF (\r\n)

This commit is contained in:
Mikhail Kuznetsov
2026-04-27 14:03:10 +10:00
parent 4cc1269554
commit 0d8895d3aa

View File

@@ -33,7 +33,7 @@ namespace PARR.API.Controllers.V1
private readonly IRobotHistoryService robotHistoryService; private readonly IRobotHistoryService robotHistoryService;
private readonly IShortcodesService shortcodesService; private readonly IShortcodesService shortcodesService;
private readonly INextRunService nextRunService; private readonly INextRunService nextRunService;
private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService; //private readonly IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService;
public RobotTaskController( public RobotTaskController(
IMapper mapper, IMapper mapper,
@@ -44,8 +44,8 @@ namespace PARR.API.Controllers.V1
IClientService clientService, IClientService clientService,
IRobotHistoryService robotHistoryService, IRobotHistoryService robotHistoryService,
IShortcodesService shortcodesService, IShortcodesService shortcodesService,
INextRunService nextRunService, INextRunService nextRunServic
IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService //IScheduleResponseAreaTimeOffsetService scheduleResponseAreaTimeOffsetService
) )
{ {
this.mapper = mapper; this.mapper = mapper;
@@ -57,7 +57,7 @@ namespace PARR.API.Controllers.V1
this.robotHistoryService = robotHistoryService; this.robotHistoryService = robotHistoryService;
this.shortcodesService = shortcodesService; this.shortcodesService = shortcodesService;
this.nextRunService = nextRunService; this.nextRunService = nextRunService;
this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService; //this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
} }
@@ -197,9 +197,9 @@ namespace PARR.API.Controllers.V1
{ //RobotTaskTemplateResponse { //RobotTaskTemplateResponse
var robotTaskTemplateResponse = mapper.Map<RobotTaskTemplateResponse>(task); var robotTaskTemplateResponse = mapper.Map<RobotTaskTemplateResponse>(task);
robotTaskTemplateResponse.FullDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.FullDescription, task.Template!); robotTaskTemplateResponse.FullDescription = NormalizeLineEndingsToCrlf(await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.FullDescription, task.Template!));
robotTaskTemplateResponse.ShortDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.ShortDescription, task.Template!); robotTaskTemplateResponse.ShortDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.ShortDescription, task.Template!);
robotTaskTemplateResponse.Solution = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.Solution, task.Template!); robotTaskTemplateResponse.Solution = NormalizeLineEndingsToCrlf(await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.Solution, task.Template!));
robotTaskTemplateResponse.TnkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.TnkName, task.Template!); robotTaskTemplateResponse.TnkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.TnkName, task.Template!);
robotTaskTemplateResponse.WorkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkName, task.Template!); robotTaskTemplateResponse.WorkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkName, task.Template!);
robotTaskTemplateResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkGroup, task.Template!); robotTaskTemplateResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkGroup, task.Template!);
@@ -318,5 +318,19 @@ namespace PARR.API.Controllers.V1
return true; return true;
} }
/// <summary>
/// Приводит переносы строк в тексте к формату CRLF (\r\n)
/// </summary>
/// <param name="text">Исходный текст</param>
/// <returns>Текст с унифицированными переносами строк</returns>
private string NormalizeLineEndingsToCrlf(string? text)
{
if (string.IsNullOrEmpty(text))
return string.Empty;
// Заменяем любые варианты переносов (\r\n, \r, \n) на единый \r\n
return System.Text.RegularExpressions.Regex.Replace(text, @"\r\n|\r|\n", "\r\n");
}
} }
} }