コード例 #1
0
        /// <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]);
                }
            }
        }
コード例 #2
0
ファイル: ParagraphMap.cs プロジェクト: Veivan/MorphApp
        /// <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;
            }
        }