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); }
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); }