/// <summary> /// Ensure a search best bet /// </summary> /// <param name="site">The current site collection</param> /// <param name="bestBetDefinition">The best best metadata</param> /// <param name="level">The search object level.</param> /// <returns>The best bet object.</returns> public Microsoft.Office.Server.Search.Query.Rules.BestBet EnsureBestBet(SPSite site, BestBetInfo bestBetDefinition, SearchObjectLevel level) { var searchApp = this.searchHelper.GetDefaultSearchServiceApplication(site); Microsoft.Office.Server.Search.Query.Rules.BestBet bestBet = null; var queryRuleManager = new QueryRuleManager(searchApp); var searchOwner = new SearchObjectOwner(level, site.RootWeb); // Build the SearchObjectFilter var searchObjectFilter = new SearchObjectFilter(searchOwner); var bestBets = queryRuleManager.GetBestBets(searchObjectFilter); if (!bestBets.Contains(bestBetDefinition.Url)) { bestBet = bestBets.CreateBestBet( bestBetDefinition.Title, bestBetDefinition.Url, bestBetDefinition.Description, bestBetDefinition.IsVisualBestBet, bestBetDefinition.DeleteIfUnused); } else { bestBet = bestBets[bestBetDefinition.Url]; } return(bestBet); }
/// <summary> /// Ensure a search best bet /// </summary> /// <param name="site">The current site collection</param> /// <param name="bestBetDefinition">The best best metadata</param> /// <param name="level">The search object level.</param> /// <returns>The best bet object.</returns> public Microsoft.Office.Server.Search.Query.Rules.BestBet EnsureBestBet(SPSite site, BestBetInfo bestBetDefinition, SearchObjectLevel level) { var searchApp = this.searchHelper.GetDefaultSearchServiceApplication(site); Microsoft.Office.Server.Search.Query.Rules.BestBet bestBet = null; var queryRuleManager = new QueryRuleManager(searchApp); var searchOwner = new SearchObjectOwner(level, site.RootWeb); // Build the SearchObjectFilter var searchObjectFilter = new SearchObjectFilter(searchOwner); var bestBets = queryRuleManager.GetBestBets(searchObjectFilter); if (!bestBets.Contains(bestBetDefinition.Url)) { bestBet = bestBets.CreateBestBet( bestBetDefinition.Title, bestBetDefinition.Url, bestBetDefinition.Description, bestBetDefinition.IsVisualBestBet, bestBetDefinition.DeleteIfUnused); } else { bestBet = bestBets[bestBetDefinition.Url]; } return bestBet; }