public void UnderlineJoinedSentenceUnit(Text[] sentenceArray, int unitStartPosition, int unitEndPosition) { for (int i = unitStartPosition; i < unitEndPosition; i++) { OpenXmlTextHelper.UnderlineWordRun( OpenXmlTextHelper.GetParentRunProperties(sentenceArray, i)); } }
private Paragraph MoveSingleAdverbBeforeVBOrPASTorPRESUnit( Text[] sentenceArray, int adverbIndexPosition, int adverbBreakerPosition) { var VbPastPresPosition = _sentence.GetPositionOfClosestSpecifiedUnit( sentenceArray, adverbIndexPosition, text => text.IsVbPastPres()); var adverbUnit = sentenceArray .Skip(adverbIndexPosition) .Take(adverbBreakerPosition - adverbIndexPosition); Text[] beforeVbPastPres; Text[] afterVbPastPres; ArrayUtility.SplitArrayAtPosition( sentenceArray, VbPastPresPosition, out beforeVbPastPres, out afterVbPastPres); Text[] beforeADV; Text[] afterADV; ArrayUtility.SplitArrayAtPosition( afterVbPastPres, adverbIndexPosition, out beforeADV, out afterADV); var vbPastPres = OpenXmlTextHelper.RemoveUnitFromOriginalPosition( beforeADV, t => t.IsAdverb()); var arr = beforeVbPastPres .Concat(adverbUnit) .Concat(vbPastPres) .Concat(afterADV).ToArray(); if (arr[arr.Length - 3].Text == " " && (arr[arr.Length - 4].Text == " " || arr[arr.Length - 4].Text.EndsWith(" "))) { arr = arr.RemoveAt(arr.Length - 3); } var wordElements = OpenXmlHelper.BuildWordsIntoOpenXmlElement(arr); return(new Paragraph(wordElements)); }