Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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;
        }