feat(shortcodesService): Дополнительная детерминация списка в шорткоде СВЯЗИ(-ПН).

This commit is contained in:
Mikhail Kuznetsov
2026-07-30 14:18:04 +10:00
parent e36e08aa73
commit 349cf55862
3 changed files with 11 additions and 5 deletions

View File

@@ -196,7 +196,6 @@ namespace PARR.AIHITMainSyncer.Services
} }
// Поиск конфигурации поля для тега // Поиск конфигурации поля для тега
// Рекомендация: если метод вызывается в цикле, передавайте найденное поле внешним слоем
var tagUnitField = fieldsFromDB.FirstOrDefault(f => f.Code == "tag"); var tagUnitField = fieldsFromDB.FirstOrDefault(f => f.Code == "tag");
bool isTagProperty = tagUnitField != null && multiValueProperty.Key == tagUnitField.AihitName; bool isTagProperty = tagUnitField != null && multiValueProperty.Key == tagUnitField.AihitName;

View File

@@ -26,15 +26,20 @@ internal class RelationshipsShortcodeHandler : IShortcodeHandler
var hasNumbered = input.Contains("%СВЯЗИ-ПН%", StringComparison.OrdinalIgnoreCase); var hasNumbered = input.Contains("%СВЯЗИ-ПН%", StringComparison.OrdinalIgnoreCase);
if (!hasPlain && !hasNumbered) return input; if (!hasPlain && !hasNumbered) return input;
var relatedNames = await unitFilterService.GetRelatedUnitNamesAsync(template.JobId, template.UnitId, ct);
var result = input; var result = input;
var relatedNames = await unitFilterService.GetRelatedUnitNamesAsync(template.JobId, template.UnitId, ct);
var orderedNames = relatedNames
.OrderBy(n => n, StringComparer.OrdinalIgnoreCase)
.ToList();
if (hasPlain) if (hasPlain)
result = result.Replace("%СВЯЗИ%", string.Join("\n", relatedNames), StringComparison.OrdinalIgnoreCase); result = result.Replace("%СВЯЗИ%", string.Join("\n", orderedNames), StringComparison.OrdinalIgnoreCase);
if (hasNumbered) if (hasNumbered)
{ {
var numbered = relatedNames.Select((n, i) => $"{i + 1}. {n}"); var numbered = orderedNames.Select((n, i) => $"{i + 1}. {n}");
result = result.Replace("%СВЯЗИ-ПН%", string.Join("\n", numbered), StringComparison.OrdinalIgnoreCase); result = result.Replace("%СВЯЗИ-ПН%", string.Join("\n", numbered), StringComparison.OrdinalIgnoreCase);
} }

View File

@@ -662,6 +662,8 @@ internal class UnitFilterService : IUnitFilterService
} }
} }
return result.ToList(); return result
.OrderBy(n => n, StringComparer.OrdinalIgnoreCase)
.ToList();
} }
} }