using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk.Query; /// <summary> /// 知識庫文章 /// </summary> public class KbArticleHelper { public static readonly string entityName = "kbarticle"; public Guid kbArticleId = Guid.Empty; public IOrganizationService service; /// <summary> /// 建立知識庫文章 /// </summary> public void Create() { Entity en = new Entity() { LogicalName = entityName }; en["title"] = "知識庫文章測試"; kbArticleId = service.Create(en); } /// <summary> /// 檢索指定的產品的前十篇知識庫文章 /// </summary> /// <param name="productId">產品id</param> public void RetrieveByTopIncidentProductKbArticle(Guid productId) { RetrieveByTopIncidentProductKbArticleRequest request = new RetrieveByTopIncidentProductKbArticleRequest(); request.ProductId = productId; RetrieveByTopIncidentProductKbArticleResponse response = (RetrieveByTopIncidentProductKbArticleResponse)service.Execute(request); EntityCollection entityCollection = response.EntityCollection; } /// <summary> /// 檢索指定的主題的前十篇知識庫文章 /// </summary> /// <param name="subjectId">主題id</param> public void RetrieveByTopIncidentSubjectKbArticle(Guid subjectId) { RetrieveByTopIncidentSubjectKbArticleRequest request = new RetrieveByTopIncidentSubjectKbArticleRequest(); request.SubjectId = subjectId; RetrieveByTopIncidentSubjectKbArticleResponse response = (RetrieveByTopIncidentSubjectKbArticleResponse)service.Execute(request); EntityCollection entityCollection = response.EntityCollection; } /// <summary> /// 查找正文中包含指定文本的全部文檔索引 /// </summary> /// <param name="query">查詢條件</param> /// <param name="text">指定文本</param> /// <param name="subjectId">主題id</param> public void SearchByBodyKbArticle(QueryBase query, string text, Guid subjectId) { SearchByBodyKbArticleRequest request = new SearchByBodyKbArticleRequest(); request.QueryExpression = query; request.UseInflection = true; request.SearchText = text; request.SubjectId = subjectId; SearchByBodyKbArticleResponse response = (SearchByBodyKbArticleResponse)service.Execute(request); EntityCollection entityCollection = response.EntityCollection; } /// <summary> /// 查找包含指定關鍵字的全部文檔索引 /// </summary> /// <param name="query">查詢條件</param> /// <param name="text">指定文本</param> /// <param name="subjectId">主題id</param> public void SearchByKeywordsKbArticle(QueryBase query, string text, Guid subjectId) { SearchByKeywordsKbArticleRequest request = new SearchByKeywordsKbArticleRequest(); request.QueryExpression = query; request.UseInflection = true; request.SearchText = text; request.SubjectId = subjectId; SearchByKeywordsKbArticleResponse response = (SearchByKeywordsKbArticleResponse)service.Execute(request); EntityCollection entityCollection = response.EntityCollection; } /// <summary> /// 查找標題中包含指定文本的全部文檔索引 /// </summary> /// <param name="query">查詢條件</param> /// <param name="text">指定文本</param> /// <param name="subjectId">主題id</param> public void SearchByTitleKbArticle(QueryBase query, string text, Guid subjectId) { SearchByTitleKbArticleRequest request = new SearchByTitleKbArticleRequest(); request.QueryExpression = query; request.UseInflection = true; request.SearchText = text; request.SubjectId = subjectId; SearchByTitleKbArticleResponse response = (SearchByTitleKbArticleResponse)service.Execute(request); EntityCollection entityCollection = response.EntityCollection; } /// <summary> /// /// 刪除知識庫文章 /// /// </summary> public void Delete() { service.Delete(entityName, kbArticleId); } }