static internal XElement[] SplitParagraph(Paragraph p, int index) { // In this case edit dosent really matter, you have a choice. Run r = p.GetFirstRunEffectedByEdit(index, EditType.ins); XElement[] split; XElement before, after; if (r.Xml.Parent.Name.LocalName == "ins") { split = p.SplitEdit(r.Xml.Parent, index, EditType.ins); before = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsBeforeSelf(), split[0]); after = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsAfterSelf(), split[1]); } else if (r.Xml.Parent.Name.LocalName == "del") { split = p.SplitEdit(r.Xml.Parent, index, EditType.del); before = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsBeforeSelf(), split[0]); after = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsAfterSelf(), split[1]); } else { split = Run.SplitRun(r, index); before = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.ElementsBeforeSelf(), split[0]); after = new XElement(p.Xml.Name, p.Xml.Attributes(), split[1], r.Xml.ElementsAfterSelf()); } if (before.Elements().Count() == 0) { before = null; } if (after.Elements().Count() == 0) { after = null; } return(new XElement[] { before, after }); }
internal static XElement[] SplitParagraph(Paragraph p, int index) { Run firstRunEffectedByEdit = p.GetFirstRunEffectedByEdit(index); XElement xElement; XElement xElement2; if (firstRunEffectedByEdit.Xml.Parent.Name.LocalName == "ins") { XElement[] array = p.SplitEdit(firstRunEffectedByEdit.Xml.Parent, index, EditType.ins); xElement = new XElement(p.Xml.Name, p.Xml.Attributes(), firstRunEffectedByEdit.Xml.Parent.ElementsBeforeSelf(), array[0]); xElement2 = new XElement(p.Xml.Name, p.Xml.Attributes(), firstRunEffectedByEdit.Xml.Parent.ElementsAfterSelf(), array[1]); } else if (firstRunEffectedByEdit.Xml.Parent.Name.LocalName == "del") { XElement[] array = p.SplitEdit(firstRunEffectedByEdit.Xml.Parent, index, EditType.del); xElement = new XElement(p.Xml.Name, p.Xml.Attributes(), firstRunEffectedByEdit.Xml.Parent.ElementsBeforeSelf(), array[0]); xElement2 = new XElement(p.Xml.Name, p.Xml.Attributes(), firstRunEffectedByEdit.Xml.Parent.ElementsAfterSelf(), array[1]); } else { XElement[] array = Run.SplitRun(firstRunEffectedByEdit, index); xElement = new XElement(p.Xml.Name, p.Xml.Attributes(), firstRunEffectedByEdit.Xml.ElementsBeforeSelf(), array[0]); xElement2 = new XElement(p.Xml.Name, p.Xml.Attributes(), array[1], firstRunEffectedByEdit.Xml.ElementsAfterSelf()); } if (xElement.Elements().Count() == 0) { xElement = null; } if (xElement2.Elements().Count() == 0) { xElement2 = null; } return(new XElement[2] { xElement, xElement2 }); }