feat(shortcodesService): Дополнительная детерминация списка в шорткоде СВЯЗИ(-ПН).
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -662,6 +662,8 @@ internal class UnitFilterService : IUnitFilterService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result.ToList();
|
return result
|
||||||
|
.OrderBy(n => n, StringComparer.OrdinalIgnoreCase)
|
||||||
|
.ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user