GetParagraphSentences(IList <SentenceItems> paragraphSentenceItems, int paragraphStartPosition)
        {
            List <TextParsing.Sentence> result = new List <TextParsing.Sentence>();

            TextParsing.Sentence parent = null;
            foreach (var sentenceItems in paragraphSentenceItems)
            {
                Entity lastEntity            = sentenceItems.Entities.LastOrDefault();
                TextParsing.Sentence current = sentenceItems.Sentence;
                if (parent != null)
                {
                    parent.AppendNextPart(current);
                    current = parent;
                    parent  = null;
                }
                int sentenceEndPosition = paragraphStartPosition + current.StartPosition + current.Text.Length;
                if ((lastEntity != null) && (sentenceEndPosition < lastEntity.PositionInfo.End))
                {
                    parent = current;
                }
                else
                {
                    result.Add(current);
                }
            }
            return(new Tuple <TextParsing.Sentence[], TextParsing.Sentence>(result.ToArray(), parent));
        }
 /// <summary>
 /// Добавление предложения в коллекцию
 /// </summary>
 /// <param name="sentences">список предложений</param>
 /// <param name="newSentence">новое предложение</param>
 private void AddSentence(List <Sentence> sentences, Sentence newSentence)
 {
     if (sentences.Any())
     {
         Sentence last = sentences.LastOrDefault();
         if (string.IsNullOrEmpty(newSentence.Text.Trim()) || string.IsNullOrEmpty(last.Text.Trim()))
         {
             last.AppendNextPart(newSentence);
             return;
         }
     }
     sentences.Add(newSentence);
 }