/// <summary> /// Highlight all word bookmark that not exist on data domain /// </summary> /// <param name="iBms"></param> public void ValidateBookmarkCollectionWithDomain(string key) { try { bool isHighlight = false; List <string> unMatched = new List <string>(); //Get Bookmark Collection then put to WKL GetBookmarkCollection(key); ContentServiceProfile contentProfile = Wkl.MainCtrl.ServiceCtrl.GetProfile(key).ContentService; Dictionary <string, string> wBm = contentProfile.GetBookmarks_OListBM; //Get Internal Bookmark TemplateInfo templateInfo = Wkl.MainCtrl.CommonCtrl.GetTemplateInfo( contentProfile.ValidateBookmark_ITemplateName); InternalBookmark interBm = templateInfo.InternalBookmark; //Get Domain Data foreach (string domainName in templateInfo.DomainNames) { DomainInfo domainInfo = Wkl.MainCtrl.CommonCtrl.GetDomainInfo(domainName); if (domainInfo != null) { InternalBookmarkDomain ibmDomain = interBm.GetInternalBookmarkDomain(domainName); foreach (InternalBookmarkItem item in ibmDomain.InternalBookmarkItems) { if (!MarkupUtilities.IsExistOnDomain(item, domainInfo.Fields, true)) { if (wBm.ContainsKey(item.Key) && wBm[item.Key] == item.BizName) { contentProfile.HighlightBookmarkName = item.Key; unMatched.Add(item.BizName); HighlightBookmark(key); isHighlight = true; } } } } else { isHighlight = true; } } contentProfile.UnMatchedFields = unMatched; contentProfile.Result = !isHighlight; } catch (BaseException srvExp) { Services.ServiceException newSrvExp = new Services.ServiceException(ErrorCode.ipe_ValidateWordBookmarkWithDomainError); newSrvExp.Errors.Add(srvExp); throw newSrvExp; } catch (Exception ex) { ServiceException srvExp = new ServiceException(ErrorCode.ipe_ValidateWordBookmarkWithDomainError, MessageUtils.Expand(Properties.Resources.ipe_ValidateWordBookmarkWithDomainError, ex.Message), ex.StackTrace); throw srvExp; } }