public SearchIndexQueryResultDrop(IPortalLiquidContext portalLiquidContext, ICrmEntitySearchResult result) : base(portalLiquidContext)
        {
            if (result == null)
            {
                throw new ArgumentNullException("result");
            }

            Result = result;

            _entity = new Lazy <EntityDrop>(GetEntity, LazyThreadSafetyMode.None);
        }
        private JObject GetSearchResultJson(ICrmEntitySearchResult @searchResult)
        {
            var json = new JObject
            {
                { "entityID", @searchResult.EntityID.ToString() },
                { "entityLogicalName", @searchResult.EntityLogicalName },
                { "title", @searchResult.Title },
                { "fragment", @searchResult.Fragment },
                { "resultNumber", @searchResult.ResultNumber },
                { "score", @searchResult.Score }
            };

            //Adding annotations to KnowledgeArticle
            var relatedNotes = @searchResult.Entity.GetAttributeValue <IEnumerable>("relatedNotes");

            if (relatedNotes != null)
            {
                var list = new JArray();
                foreach (var result in relatedNotes)
                {
                    var note = result as CrmEntitySearchResult;
                    if (note == null)
                    {
                        continue;
                    }

                    var relatedNote = new JObject
                    {
                        { "entityID", note.EntityID },
                        { "entityLogicalName", note.EntityLogicalName },
                        { "title", note.Entity.GetAttributeValue <string>("filename") },
                        { "fragment", note.Fragment }, { "url", note.Url.ToString() },
                        { "absoluteUrl", BuildAbsoluteUrl(note.Url.ToString()) }
                    };
                    list.Add(relatedNote);
                }
                json["relatedNotes"] = list;
            }

            if (@searchResult.Url == null)
            {
                return(json);
            }
            json["url"]         = @searchResult.Url.ToString();
            json["absoluteUrl"] = BuildAbsoluteUrl(@searchResult.Url.ToString());

            return(json);
        }
示例#3
0
        private string GetKnowledgeArticleDescription(ICrmEntitySearchResult result)
        {
            var description = result.Entity.GetAttributeValue <string>("description");

            if (description != null)
            {
                return(description);
            }

            var content = result.Entity.GetAttributeValue <string>("content");

            if (content != null)
            {
                content = content.Length >= 140 ? ContentFieldBuilder.StripContent(content.Substring(0, 140) + "...")
                                                : ContentFieldBuilder.StripContent(content + "...");
            }
            return(content);
        }