/// <summary> /// Формирование содержимого внутреннего объекта ParagraphMap. /// </summary> /// <param name="pMap">объект ParagraphMap</param> /// <param name="input">текстовое содержание абзаца</param> /// <returns></returns> public void UpdateParagraph(ParagraphMap pMap, string input, bool IsHeader) { var ihash = input.GetHashCode(); int currenthash = pMap.GetHashCode(IsHeader); var range = IsHeader ? SentTypes.enstNotActualHead : SentTypes.enstNotActualBody; var sentlist = pMap.GetParagraphSents(range); if (ihash == currenthash && sentlist.Count == 0) { return; } var sents = this.MorphGetSeparatedSentsList(input); pMap.RefreshParagraph(new ArrayList(sents), IsHeader); sentlist = pMap.GetParagraphSents(range); if (sentlist.Count == 0) { return; } // Выполнение синтана для неактуальных предложений. foreach (var sent in sentlist) { var sentlistRep = this.MorphMakeSyntan(sent.sentence); if (sentlistRep.Count > 0) { pMap.UpdateSentStruct(sent.order, sentlistRep[0]); } } }
/// <summary> /// Конструктор - копировщик /// </summary> public ParagraphMap(ParagraphMap pMap) { this._pg_id = pMap._pg_id; this._doc_id = pMap._doc_id; this._ct_id = pMap._ct_id; this._created_at = pMap._created_at; var innerPara = pMap.GetParagraphSents(); foreach (var sentprop in pMap.innerPara) { this.AddSentStruct(sentprop.order, sentprop.sentstruct); var newSprop = this.innerPara.Last(); newSprop.sentence = sentprop.sentence; newSprop.hash = sentprop.hash; newSprop.IsActual = sentprop.IsActual; } }