public void TagContent(Item item, IEnumerable <Tag> tags)
        {
            if (tags == null)
            {
                return;
            }
            var tagList = tags.ToList();

            if (!tagList.Any() || !item.IsDerived(__TextAnalyticsEntity.TemplateID))
            {
                return;
            }

            var entity = new __TextAnalyticsEntity(item);

            item.Editing.BeginEdit();
            var field = (MultilistField)item.Fields["{A14F1B0C-4384-49EC-8790-28A440F3670C}"];

            foreach (var tag in tagList.Where(p => p?.Data != null))
            {
                var tagData = tag.Data;
                if (tagData.GetType() == typeof(SentimentTagData))
                {
                    // Sentiment
                    item.Fields[__TextAnalyticsEntity.FieldIds.Sentiment].Value       = tag.ID;
                    item.Fields[__TextAnalyticsEntity.FieldIds.SentimentRating].Value = tagData.Relevance.ToString(CultureInfo.InvariantCulture);
                }
                else if (tagData.GetType() == typeof(EntitiesTagData))
                {
                    // Entities
                    item.Fields[__TextAnalyticsEntity.FieldIds.Entities].Value = ((EntitiesTagData)tagData).Entities.ToString();
                }
                else
                {
                    // Normal Tagging
                    if (ID.TryParse(tag.ID, out var result) && !field.TargetIDs.Contains(result))
                    {
                        field.Add(tag.ID);
                    }
                }
            }
            item.Fields[__TextAnalyticsEntity.FieldIds.TextAnalyticsMD5].Value = entity.RawContent.CalculateMd5Hash();
            item.Editing.EndEdit();
        }
Beispiel #2
0
        public TaggableContent GetContent(Item source)
        {
            if (!source.IsDerived(__TextAnalyticsEntity.TemplateID))
            {
                return(null);
            }
            var entity = new __TextAnalyticsEntity(source);

            if (entity.TextAnalyticsMD5 == entity.RawContent.CalculateMd5Hash())
            {
                return(null);
            }

            return(new TextAnalyticsStringContent
            {
                Content = entity.RawContent,
                CurrentMd5 = entity.TextAnalyticsMD5
            });
        }