namespace QWERTYkez.WordProcessor;
///
/// Вспомогательный класс для замены параграфов в различных контейнерах
///
internal static class ParagraphReplacer
{
///
/// Заменяет параграф на новые параграфы в родительском элементе
///
/// Старый параграф для замены
/// Новые параграфы
internal static void ReplaceParagraph(Paragraph oldParagraph, List newParagraphs)
{
if (oldParagraph is null || newParagraphs is null || newParagraphs.Count == 0)
return;
var parent = oldParagraph.Parent;
if (parent is null)
return;
int paraIndex = -1;
var children = parent.ChildElements;
// Находим индекс параграфа
for (int i = 0; i < children.Count; i++)
{
if (children[i] == oldParagraph)
{
paraIndex = i;
break;
}
}
if (paraIndex == -1)
return;
// Удаляем старый параграф
parent.RemoveChild(oldParagraph);
// Вставляем новые параграфы
for (int i = 0; i < newParagraphs.Count; i++)
{
parent.InsertAt(newParagraphs[i], paraIndex + i);
}
}
}